Partage
  • Partager sur Facebook
  • Partager sur Twitter

Changement de panel après évènement

    1 décembre 2020 à 13:06:30

    Bonjour à tous,

    Pour une application, j'ai crée 3 panels ainsi qu'une bar menu. J'aimerais qu'a la sélection d'un menu ça me change de panel.

    Par exemple je choisi panel 1 dans la bar menu ca me dirige vers le panel1.


    Merci d'avance

    -
    Edité par LawJava01 3 décembre 2020 à 15:23:03

    • Partager sur Facebook
    • Partager sur Twitter
      1 décembre 2020 à 14:48:32

      En utilisant show (content, name)

      Les API java sont fournies avec leur javadoc, en la lisant, tu peux savoir de quoi le composant est capable.

      • Partager sur Facebook
      • Partager sur Twitter
        1 décembre 2020 à 14:56:36

        Oui mais généralement les docs sont en anglais et je galére

        A quoi correspond les paramètres content et name ?



        -
        Edité par LawJava01 3 décembre 2020 à 15:23:21

        • Partager sur Facebook
        • Partager sur Twitter
          1 décembre 2020 à 15:58:10

          Si tu ne comprends pas l'anglais, google translate fera l'affaire.
          • Partager sur Facebook
          • Partager sur Twitter
            1 décembre 2020 à 16:01:21

            L'intérêt d'un forum d'aide si c'est pour dire va sur google ou google trad ?

            Si je poste ici c'est que j'ai déjà essayé et que ca ne marche pas et j'aimerais savoir pq

            -
            Edité par LawJava01 1 décembre 2020 à 16:03:58

            • Partager sur Facebook
            • Partager sur Twitter
              1 décembre 2020 à 16:14:20

              L'interet d'un forum est de fournir les outils et pistes afin de devenir autonome, pas de faire le boulot à ta place.

              Ca ne marche pas, ça veut dire quoi? exception? compile pas?

              • Partager sur Facebook
              • Partager sur Twitter
                1 décembre 2020 à 16:16:42

                Ca compile j'ai l'affichage de ma fenetre.

                Mais lorsque je choisi mon menuItem je n'ai pas le changement de panel

                • Partager sur Facebook
                • Partager sur Twitter
                  1 décembre 2020 à 16:36:09

                  Tu demandes au système de récupérer menuItem et menuItem_2, selon toi, comment pourrait-il savoir à quoi correspondent ces string?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 décembre 2020 à 16:44:57

                    Avec leur nom (string) ? J'ai essayé mais ça me donne le même résultat
                    • Partager sur Facebook
                    • Partager sur Twitter
                      2 décembre 2020 à 10:37:27

                      private JMenuItem menuItem = new JMenuItem("Chargement"); // Chargement
                      private JMenuItem menuItem_2 = new JMenuItem("Historique"); // Chargement

                      Je me trompe ?

                      Le fonction show(content, name)

                      Dans la doc, ils disent le content parent donc c'est bien content et pas pan1 ou pan2 n'est ce pas ?

                      Concernant le name, c'est le nom d'une pan1 ? ou bien JMenuItem ? psq c'est pan1 j'ai pas de nom specifique en tout cas pas de string.

                      C'est flou pour moi cette fonction

                      -
                      Edité par LawJava01 2 décembre 2020 à 10:40:09

                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 décembre 2020 à 10:55:07

                        content est bien le conteneur c'est exact.

                        en quoi les jmenuitem sont pertinent dans ce que tu veux faire?, ce sont des widget séparé de tes card, ce n'est donc pas leur nom que tu dois utiliser.

                        En lisant la doc du layout que tu utilises, il y a dedans une fonction qui correspond à ce que tu dois faire.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 décembre 2020 à 11:03:26

                          C'est à la sélection du jmenuitem que je dois afficher mon panel c'est pour ça que je pensais qu'il fallait le mettre

                           show(Container parent,String name)

                          Bascule vers le composant qui a été ajouté à cette mise en page avec le spécifié name, en utilisant addLayoutComponent.

                          La seule fonction qui retourne un string

                          toString()
                          Renvoie une représentation sous forme de chaîne de l'état de cette disposition de carte.

                          cardL.show(content,pan2.toString());
                          Ca me donne toujours rien
                          • Partager sur Facebook
                          • Partager sur Twitter
                            2 décembre 2020 à 12:17:09

                            Non, ce n'est pas comme ça que ça fonctionne, tu dois enregistrer le nom et son composant via une fonction spécifique.

                            De cette manière le layout pourra mapper le composant avec le nom que tu auras choisi et ainsi le retrouver au besoin.

                            • Partager sur Facebook
                            • Partager sur Twitter
                              2 décembre 2020 à 13:06:20

                              Je suppose que c'est la fonction : addLayoutComponent(String name, Component comp)

                              cardL.show(content,addLayoutComponent(String name, pan2));


                              name - the string to be associated with the componentcomp - the component to be added

                              Sauf que mon pan2 a aucun string correspondant

                              Sauf si il faut utiliser addLayoutComponent(String name, Component comp) en amont mais je vois pas sur quoi je dois l'aplliquer

                              addLayoutComponent("panel1", pan1); j'ai un message d'erreur comme quoi la methode est pas defini


                              • Partager sur Facebook
                              • Partager sur Twitter
                                2 décembre 2020 à 13:35:10

                                C'est presque ça, addLayoutComponent(String name, Component c), est dépréciée, en faveur de addLayoutComponent(Component c, Object name),

                                et c'est avec cette fonction que tu vas faire le mapping component - name pour ton layout, ensuite, il sera capable de le retrouver à partir du nom.

                                Enfin, j'espère, je n'utilise pas swing(javafx c'est le bien) donc je me base juste sur la doc.

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  2 décembre 2020 à 13:52:33

                                  C'est complétement flou pour le coup :

                                  addLayoutComponent(Component c, Object name) -> Cette fonction va me permettre de donner un nom à mon panel.

                                  Pour l'utiliser mon Component -> pan2 

                                                                Object name -> Je ne vois pas à quoi ça correspond

                                  Une fois cette fonction appliquer en amont (juste après la création de mon panel)

                                  Dans ma fonction cardL.show(content, string);

                                  A la place de string je mettrai le object name ?



                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    2 décembre 2020 à 15:09:25

                                    La fonction va permettre de lier ton panel a un nom qui sera connu du layout.

                                    Object name n'est pas très intuitif, une String aurait été plus parlant mais je suppose que c'est du à une sombre histoire d'interface générique.

                                    tu peux donc invoquer addLayoutComponent(pan2, "mon_super_nom");

                                    puis plus tard faire show(content, "mon_super_nom")

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      2 décembre 2020 à 15:54:44

                                      J'ai bien compris le concept cependant quand je mets la ligne de code : 

                                      addLayoutComponent(pan2, "mon_super_nom"); 

                                      J'ai un message d'erreur : La méthode addLayoutComponent(JPanel, String) est indéfinie pour le type Interface 

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        2 décembre 2020 à 16:50:41

                                        .

                                        -
                                        Edité par LawJava01 3 décembre 2020 à 15:23:40

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          2 décembre 2020 à 19:04:28

                                          addLayoutComponent est une methode de la classe JFrame selon toi?
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            3 décembre 2020 à 9:26:20

                                            Non, je viens de voir c'est une méthode de  : Interface LayoutManager2

                                            Cependant une interface ne définit pas les méthodes si je ne me trompe pas du coup ma méthode va rien faire non ?

                                            Si je comprend bien, je dois créer l'interface

                                            public interface LayoutManager2
                                            extends LayoutManager

                                            Mettre la signature et faire un implements sur ma classe Inteface ? et je pourrai utiliser la méthode addLayoutComponent

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              3 décembre 2020 à 10:36:03

                                              Une méthode non statique peut-être définie dans une interface, et pour être utilisée, il faut passer par un objet d'une classe qui implémente cette interface.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                3 décembre 2020 à 12:44:04

                                                Concrètement ça donne quoi ? Je ne vois même pas comment je peux la définir

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  3 décembre 2020 à 12:51:00

                                                  Concretement c'est ton objet layout qui implémente cette interface.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    3 décembre 2020 à 13:51:50

                                                    Mon Layout étant cardL : CardLayout cardL = newCardLayout();

                                                    Si je met un import import java.awt.LayoutManager; dans ma classe interface je peux toujours pas utiliser la methode

                                                    si je met implements LayoutManager2 : Le type Interface doit implémenter la méthode abstraite héritée LayoutManager.preferredLayoutSize(Container)

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      3 décembre 2020 à 14:10:12

                                                      Je l'ai déjà lu mais je comprend pas ce que je dois faire
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        3 décembre 2020 à 14:29:47

                                                        A ton avis, auprès de quel objet tu dois enregistrer le nom pour pouvoir récupérer le composant associé?
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter

                                                        Changement de panel après évènement

                                                        × 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