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 avec déplacement de JPanel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Par défaut Probléme avec déplacement de JPanel
    Bonjour,

    J'essai de développer une application dans laquelle :
    Je dois déplacer un JPanel.

    En effet, j'arrive bien à déplacer un JPanel concu à l'aide du concepteur d'interface de JBuilder, mais dés que j'en créer un moi même par le code, je n'arrive plus à le déplacer, il semblerait qu'il détecte bien les nouveaux coordonnées que le lui donne, mais on ne voit rien, le JPanel ne bouge pas de place.

    Voici le bout de code quand je créer mon JPanel :
    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
     
                    JPanel pannel = new JPanel();
                    pannel.setBackground(Color.YELLOW);
                    JLabel nvolabel = new JLabel();
                    nvolabel.setText("toto");
                    pannel.add(nvolabel);
     
                    ImageIcon icone = new ImageIcon("photos/toto.jpg");
                    JLabel jLabel2 =new JLabel(icone);
                    pannel.add(jLabel2);
     
                    XYLayout xYLayout3 = new XYLayout();
                    pannel.setLayout(xYLayout3); // on lui ajoute un layout
                    this.getContentPane().add(pannel, new XYConstraints(500, 500, 200, 200));
                    pannel.addMouseListener(new principale_pannel_mouseAdapter(this));
    Voici le bout de code qui a lieu quand je clique sur mon bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        public void jButton2_mouseClicked(MouseEvent e) {
             pannel.setLocation(513,500);
             this.getContentPane().repaint();   
        }
    Quelqu'un saurait-il pourquoi le déplacement du JPanel "pannel" ne s'effectue pas ?

    Merci beaucoup ! A bientot...

  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    C'est assez simple : le programmeur peut donner des indications avec setLocation et setSize (ou setBounds), mais au final c'est le layout du conteneur qui décide de la taille et de la position des composants contenus. Il y a des layouts comme le GridLayout pour lesquels appeler ces méthodes ne sert strictement à rien.


    En l'occurrence, tu ajoutes pannel dans un contentPane (probablement d'une JFrame), qui doit avoir un BorderLayout. Ce layout tient compte des setPreferredSize, mais pas des setLocation.

    Pour être sûr que ça marche il faut soit ne pas utiliser de layout (setLayout(null)), soit utiliser des layouts particuliers (peut-être ton XYlayout ?).
    "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.

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Par défaut re :Probléme avec déplacement de JPanel
    Merci pour ton aide !

    Ton aide m'a permis d'avancer, en effet maintenant le setbounds fonctionne et c'est deja ca.

    Le probléme restant est que setbounds... ne fonctionne qu'a la création de l'objet (pannel), il me le positionne donc bien.

    Hors, lorsque je je decide de le faire bouger apres ca création (en cliquant sur un bouton par exemple), il ne bouge pas mais je n'ai pas d'erreur. Pourtant j'ai bien effectuer un repaint sur le conteneur qui contient mon pannel.

    Quand je clique sur le bouton voici le code qui se déclenche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        public void jButton2_mouseClicked(MouseEvent e) {
           pannel.setBounds(60,60,600,50);
           jpanelarbre.repaint(); // le jpanelarbre contient le pannel
           this.repaint(); // this contient le jpanelarbre
        }
    Quelqu'un aurait-il une idée pour régler le probléme ?

    Merci d'avance !

  4. #4
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Alors vérifie pour le layout, et appelle plutot revalidate que repaint (ça provoque le layout, il me semble).
    "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.

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Par défaut
    Non y'a rien à faire le "pannel" change pas de place quand je clique sur le bouton.

  6. #6
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Ca devient bizarre là. Quel layout utilises tu ?
    "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.

Discussions similaires

  1. Problème avec un JTextArea et un JPanel
    Par Spinoza23 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 01/02/2007, 16h33
  2. Problème avec GridBagLayout dans JPanel
    Par caneman dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 19/12/2006, 22h32
  3. Problème avec image dans JPanel
    Par littleshrimp dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 14/05/2006, 14h05
  4. Problème avec l'insertion d'une image dans JPanel
    Par anutka dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 16/03/2006, 10h02
  5. Réponses: 24
    Dernier message: 11/01/2005, 10h12

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