Partage
  • Partager sur Facebook
  • Partager sur Twitter

superposer 2 JPanel

Sujet résolu
    8 avril 2010 à 11:54:24

    bonjour,
    toujours sur mon petit projet graphique, dans le borderlayout.CENTER je veux mettre 2 JPanel qui s'affiche selon le bouton cliqué.

    donc normalemtn j'ai pensé a rajouter les 2 jpanel au meme temps et faire passé un des deux à setVisible(false) selon le bouton cliqué...mais ca marche pas!
    panel1.add(panel2,BorderLayout.CENTER);
    panel1.add(panel3,BorderLayout.CENTER);
    .
    .
    .
    public void actionPerformed(ActionEvent arg0) {
    		if(arg0.getSource() == Bouton1){
    			panel2.setVisible(true);
    			panel3.setVisible(false);
    			
    			}
    		else{ panel2.setVisible(false);
    		panel3.setVisible(true);
    		}
    	}
    

    seulement le dernier panel que je rajoute au panel1 qui s'affiche en l'occurence panel3
    un coup de main peut etre ?
    • Partager sur Facebook
    • Partager sur Twitter
      8 avril 2010 à 11:56:53

      bonjour,

      A ma connaissance il n'est pas possible de faire ça en utilisant les setVisible(). je pense qu'il te faut réaffecter le panel de ton choix au moment du clic sur le bouton puis de redessiner ta fenêtre.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        8 avril 2010 à 12:02:23

        Salut,

        Normalement ça devrait marcher. Tu as bien ajouté ton listener sur les boutons ?

        ++
        • Partager sur Facebook
        • Partager sur Twitter
          8 avril 2010 à 12:14:38

          Salut,

          Citation : BZ


          Normalement ça devrait marcher. Tu as bien ajouté ton listener sur les boutons ?


          oui bien évidemment ;)

          Citation : jonkille

          A ma connaissance il n'est pas possible de faire ça en utilisant les setVisible(). je pense qu'il te faut réaffecter le panel de ton choix au moment du clic sur le bouton puis de redessiner ta fenêtre.



          peux-tu détailler stp avec un petit exemple ? ^^
          ce qui me dérange c'est pourquoi il m'affiche le dernier pannel ajouté au panel père

          • Partager sur Facebook
          • Partager sur Twitter
            8 avril 2010 à 12:16:45

            Bah je vais tenter de détailler
            dans ton action qui découle du clic sur ton boutonx (où x est le numéro du bouton) tu fais panelPere.add(panelx)
            • Partager sur Facebook
            • Partager sur Twitter
              8 avril 2010 à 12:31:30

              j'ai bien apprécié ton idée sauf que là plus rien ne s'affiche :(
              • Partager sur Facebook
              • Partager sur Twitter
                8 avril 2010 à 13:55:14

                t'as bien fait un panelPere.validate() ?
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  8 avril 2010 à 14:02:23

                  Alors essaye de faire un doLayout ou un revalidate sur ton panel1 après avoir modifié la visibilité de ses enfants.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 avril 2010 à 14:14:20

                    voilà j'ai réussi en utilisant les 2 méthodes :D
                    if(arg0.getSource() == bouton1){
                      pfils1.setVisible(true);
                      pfils2.setVisible(false);
                      ppère.add(pfils1,BorderLayout.CENTER);
                    }
                    else{ 
                       pfils1.setVisible(false);
                       pfils2.setVisible(true);
                       ppère.add(pfils2,BorderLayout.CENTER);
                    }
                    

                    ca sert a quoi le ppère.validate()? je dois le mette a quel endroit?

                    merdi de votre soutien

                    • Partager sur Facebook
                    • Partager sur Twitter
                      8 avril 2010 à 14:17:23

                      le pere.validate() sert à notifier une modification du contenu. si t'enlèves les pfils.setVisible et qu'après le add tu fais un ppère.validate() ça marcherait pas ?
                      parce que la pour le coup ils ont pas l'air utiles !!
                      • Partager sur Facebook
                      • Partager sur Twitter
                        8 avril 2010 à 14:38:48

                        ca fait un effet bizar lol
                        quand je passe le curseur sur un des pfils je vois les camposants de l'autre pfils s'afficher au fur et a mesur :D

                        c'est pas grave, merci mec
                        • Partager sur Facebook
                        • Partager sur Twitter
                          8 avril 2010 à 14:55:36

                          bah c'est des bugs d'affichage tout ça :-)
                          Tente le repaint() ça sauve la vie des fois
                          • Partager sur Facebook
                          • Partager sur Twitter
                            8 avril 2010 à 15:02:38

                            je vais déclarer comme résolu :)
                            peux tu jetter un coup d'oeil sur ce topic :D
                            http://www.siteduzero.com/forum-83-506 [...] e-clique.html
                            • Partager sur Facebook
                            • Partager sur Twitter
                              8 avril 2010 à 15:09:31

                              un CardLayout ou un OverlayLayout sera plus approprié
                              • Partager sur Facebook
                              • Partager sur Twitter

                              superposer 2 JPanel

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown