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 :

problème affichage JPanel dans un JPanel


Sujet :

AWT/Swing Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 33
    Points : 39
    Points
    39
    Par défaut problème affichage JPanel dans un JPanel
    Bonjour,

    cela fait maintenant plusieurs heures que je m'énerve sur se problème dont voici l'explication :

    J'ai une JFrame, dans laquelle il y a un JPanel, dans lequel il y a plusieurs autre JPanel en suivant un GridLayout, et pour finir chaque JPanel affiche une image.

    Voici rapidement le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // Création grille de 5 lignes et 5 colonnes
            JPanel plateau = new JPanel(new GridLayout (5,5));
    		// Ajout de chaque case du plateau
    		for(int i = 0; i<25;i++){
    			CasePanel caseP = new CasePanel(i);
    	        // ajout de la case au plateau
    			plateau.add(caseP);
    		}
    Et ma classe CasePanel resemble à ca :

    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
     
    public class CasePanel extends JPanel implements ConstanteTeeko {
     
    	private BufferedImage image;
     
    	public void paintComponent(Graphics g)
    	{
    		super.paintComponent(g);
    		if( image != null){
    			g.drawImage(this.image, this.getX(), this.getY(), image.getWidth(), image.getHeight(), null);
    		}
    	}
     
    public void setImage(int pion)	{
                    // code ... //
    		this.repaint();
    	}
    Il me faut absolument cette disposition de JPanel car je fait du Drag&Drop.
    Quand je fait un Drap&Drop d'un objet sur un CasePanel je mets une image dans celle ci.
    Le problème provient d'un mauvais paint des JPanel car l'image ne s'affiche pas dans mon CasePanel.

    Merci pour votre aide !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    De mémoire les coordonnées sont relatives au composant, donc il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g.drawImage(this.image, 0, 0, image.getWidth(), image.getHeight(), null);

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 33
    Points : 39
    Points
    39
    Par défaut
    Merci énormément.

    Tu a trouvé mon problème.

    La prochaine fois je ferrai une pause pour prendre du recul sur mon code.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage JComponent dans un JPanel
    Par Tumeconnais dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 19/03/2013, 18h44
  2. Une image dans un Jpanel dans un Jpanel dans un Jframe
    Par ThomasH dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 09/12/2009, 20h23
  3. Affichage image dans un JPanel
    Par Revan dans le forum 2D
    Réponses: 2
    Dernier message: 02/01/2008, 21h52
  4. Problème de taille d'un JPanel dans un GridLayout
    Par ZamZam340 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 30/04/2006, 20h56
  5. Problème affichage image dans IE6
    Par flogreg dans le forum IE
    Réponses: 6
    Dernier message: 13/02/2006, 14h29

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