IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Afficher une image dans un JPanel


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 196
    Points : 89
    Points
    89
    Par défaut Afficher une image dans un JPanel
    Bonsoir,
    Voici mon problème,
    j'essaye de créer un damier sur lequel j'essaye d'accrocher des image et impossible d'y arriver.
    Voici le code de mes classes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class TestFenetre {
    public static void main(String[] args) {
    	Fenetre f = new Fenetre("Mon super damier");
    	f.sizeAndPlace();
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    package TD6;
     
    import javax.swing.*;
    import java.awt.*;
     
    public class Fenetre extends JFrame {
     
    	private String titre;
     
    	private Damier d0;
     
    	public Fenetre (String titre) {
    		super(titre);
    		this.setSize(300,300);
    		this.setResizable(false);
    		setLayout(new BorderLayout());
    		// Création du damier
    		d0 = new Damier(10,10);
    		this.add(d0,BorderLayout.CENTER);
    		// Permet d'arrêter l'appli lors de la fermeture de la fenêtre
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
     
    	public void sizeAndPlace() {
    		Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
    		// Récupération de la largeur et hauteur de l'écran 
    		int lae = (int)dim.getWidth();
    		int hae = (int)dim.getHeight();
    		// Retaillage de la largeur et de la hauteur de la fenêtre 
    		int laf = (int)(lae*3/4);
    		int haf = (int)(hae*3/4);
    		// Variable d'émargement de la fenêtre
    		int Xf = (int)(lae*10/100);
    		int Yf = (int)(hae*10/100);
    		// Affichage de la fenêtre avec les nouvelles dimension
    		setBounds(Xf, Yf, laf, haf);
    		this.setVisible(true);
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    package TD6;
     
    import java.awt.*;
     
    import javax.swing.*;
     
    public class Damier extends JPanel{
     
    	Case [][] t;
     
    	public Damier (int nbrcaselar, int nbrcasehau) {
    		// Création du style de damier
    		setLayout(new GridLayout(nbrcaselar, nbrcasehau));
    		// Réservation de l'espace en mémoire
    		t = new Case[nbrcaselar][nbrcasehau];
    		for (int i=0 ; i<nbrcaselar ; i++) {
    			for (int j=0 ; j<nbrcasehau ; j++) {
    				t[i][j] = new Mur(i,j);
    				// Permet l'affichage dans la fenêtre
    				this.add(t[i][j]);
    			}
    		}
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    package TD6;
     
    import javax.swing.*;
    import java.awt.*;
     
    public abstract class Case extends JPanel {
     
     
    	protected static Toolkit toolkit = Toolkit.getDefaultToolkit() ;
     
    	public Case () {
    	}
     
    	public abstract void paintComponent(Graphics g);
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    package TD6;
     
    import java.awt.*;
     
    public class Mur extends Case {
     
    	Image mur = toolkit.getImage("mur.gif");
     
    	public Mur(int x, int y)
    	{
    	  super();
    	}
     
    	public void paintComponent(Graphics g) {
    		int l,h;
    		l = mur.getWidth();
    		h = mur.getHeight();
    		System.out.println(mur+" "+l+" "+h);
    		g.drawImage(mur, 0, 0, l, h, this);
    	}
    }
    J'ai joint le code également en pièce jointe

    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    au vu du titre, je te renvoie à ce post :
    http://www.developpez.net/forums/sho...d.php?t=302866
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  3. #3
    Membre actif Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Points : 294
    Points
    294
    Par défaut
    euh, j'ai pas lu tout ton code mais je sais ( au vu de ma faible expérience ),
    que pour afficher une image, qques lignes suffisent, il faut passer par un JLabel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    ImageIcon im = new ImageIcon( "chemin du fichier image");
    JLabel imageLabel = new JLabel() ;
    imageLabel.setIcon( im );
    hope it helps !
    Hope it helps !
    Nouveau ! Il y a une vie après le java, oxygénez-vous

  4. #4
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Pas d'accord, on peut passer par un JLabel, mais c'est inutile, il faut logiquement utiliser g.drawImage
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  5. #5
    Membre actif Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Points : 294
    Points
    294
    Par défaut
    Citation Envoyé par remika
    Pas d'accord, on peut passer par un JLabel, mais c'est inutile, il faut logiquement utiliser g.drawImage
    Ben, si le gars veut afficher 64 images différentes sur son échiquier,
    une grille de 64 JLabel c'est qd même plus pratique !
    Hope it helps !
    Nouveau ! Il y a une vie après le java, oxygénez-vous

  6. #6
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Toujours pas d'accord, il suffit de regarder le code du lien que j'ai mis...
    Non seulement ce n'est pas vraiment plus pratique, mais en plus tu gérerais 64 objets "dédiés au graphisme" au lieu d'un seul, ce qui n'est pas génial
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 196
    Points : 89
    Points
    89
    Par défaut RiatJava
    voici mon projet
    Fichiers attachés Fichiers attachés

  8. #8
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Une description un peu plus précise du problème nous permettrait de répondre sans télécharger, compiler puis exécuter ton code. Tu aurais plus de réponses, plus pertinentes. A bon entendeur,
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  9. #9
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    a priori vu ce que rend le projet je dirais que c'est résolu
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

Discussions similaires

  1. Afficher une image dans jpanel
    Par lostsoul dans le forum Général Java
    Réponses: 6
    Dernier message: 12/05/2009, 04h07
  2. afficher une image dans un JPanel
    Par DiverSIG dans le forum Débuter
    Réponses: 5
    Dernier message: 11/02/2009, 16h07
  3. Debutant,comment afficher une image dans un Jpanel
    Par dilamax_1 dans le forum Graphisme
    Réponses: 1
    Dernier message: 27/04/2008, 16h05
  4. Afficher une image dans un JPanel
    Par @omzo dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 19/05/2007, 00h19
  5. comment afficher une image dans un jpanel ?
    Par 180degrés dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 18/04/2006, 15h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo