Partage
  • Partager sur Facebook
  • Partager sur Twitter

IHM avec Spring

Sujet résolu
    30 novembre 2020 à 10:38:05

    Bonjour à tous,

    Mon programme fonctionne bien sur le terminal cependant je dois réaliser une interface graphique pour celui-ci.

    J'ai plusieurs questions : Une classe peut elle hériter de plusieurs classe en java ?

    J'ai essayé de créer une classe Interface :

     Celle classe hérite déjà de JFrame, j'aimerais pouvoir appeler mes méthodes que j'ai dans mes autres classes dans chaque panel.

    Par exemple, dans le panel 1, Dans une autre classe, j'ai une méthode qui return des arraylist et j'aimerais pouvoir les afficher.

    EDIT : J'ai une classe mère qui hérite de plusieurs classe possédant toutes les méthodes nécessaire pour mon programme, ma classe interface peut hériter de cette classe mere et de JFrame ? C'est quoi la syntaxe du coup ?

    Merci d'avance,

    Je suis disponible si je n'ai pas été assez clair 

    -
    Edité par LawJava01 1 décembre 2020 à 10:16:54

    • Partager sur Facebook
    • Partager sur Twitter
      30 novembre 2020 à 11:37:01

      Salut. Non, en Java tu ne peux hériter de classes. Je n'ai pas compris ça:

      "Par exemple, dans le panel 1, Dans une autre classe, j'ai une méthode qui return des arraylist et j'aimerais pouvoir les afficher."

      • Partager sur Facebook
      • Partager sur Twitter
        30 novembre 2020 à 11:48:07

        kulturman a écrit:

        Salut. Non, en Java tu ne peux hériter de classes. Je n'ai pas compris ça:

        "Par exemple, dans le panel 1, Dans une autre classe, j'ai une méthode qui return des arraylist et j'aimerais pouvoir les afficher."


        Effectivement c'est pas clair du tout,

        J'ai une classe avec des attributs privates (des arraylist avec des informations dedans) et des méthodes qui peuvent retourner des String, j'aimerais pouvoir utiliser les données dans mon interface pour pouvoir les afficher.

        Vu, que je ne peux faire d'héritage multiple et que a classe interface herite deja de JFrame, je ne sais pas comment faire

        EDIT : Si ma classe avec les informations est une classe fille de ma classe interface, vais-je pouvoir recuperer les attributs et methodes dans la classe mere (interface) ?

        EDIT2 : Ca me fait avoir une classe A (mere) -> classe B(fille de A) -> classe C et D (fille de B) ca fait pas trop lourd c'est une bonne méthodologie ? Je ne sais meme pas si ca peut marcher

        Je peux recuperer les methodes de classe C et D dans la classe A ?

        -
        Edité par LawJava01 30 novembre 2020 à 11:58:01

        • Partager sur Facebook
        • Partager sur Twitter
          30 novembre 2020 à 13:21:30

          Non, ce n'est pas du tout une bonne méthode, tu utilises très mal l'héritage, ce n'est fait pour pour pouvoir utiliser des méthodes d'une autre classe. Tu n'as même pas besoin d'héritage ici, exemple:

          public class Interface {
               
              private JFrame window;
              private JMenuBar menuBar = new JMenuBar();
              private JMenu menu = new JMenu("Fichier");
              private JMenu menu_2 = new JMenu("Editier");
              private JMenu menu_3 = new JMenu("Aide");
              private JMenuItem menuItem = new JMenuItem("Panneau Suivant");
               
              // TODO Constructeur
               
              public Interface() {
                   
                  final CardLayout cardL = new CardLayout();
                  final JPanel content = new JPanel();
                  window = new JFrame();
                  window.setTitle("Infocentre");
                  window.setSize(500,300);
                  window.setLocationRelativeTo(null); // On centre la fenêtre sur l'écran
                  window.setResizable(false); // On interdit la redimensionnement de la fenetre
                  window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // On di à l'appli de se fermer lors du clic sur la croix
                   
                  //*****************************************************************************************************//
                   
                  // Ajout menu dans l'ordre
                   
                  menuBar.add(menu);
                  menuBar.add(menu_2);
                  menuBar.add(menu_3);
                   
                  // Ajout de notre Listenener sur le sous menu
                   
                  menuItem.addActionListener(new ActionListener() {
                      @Override
                      public void actionPerformed(ActionEvent e) {
                          cardL.next(content);
                      }
                  });
                   
                  //Ajout de notre sous menu
                  menu.add(menuItem);
                   
                  // Ajout du menu bar
                  window.setJMenuBar(menuBar);
                   
                  // creation panel1, ajout texte
                  JPanel pan1 = new JPanel();
                  pan1.add(new JTextField("Je suis panneau pan1"));
                   
                  // creation panel2, ajout texte
                  JPanel pan2 = new JPanel();
                  pan2.add(new JTextField("Je suis panneau pan2"));
                   
                   
                  // Definition du Layout
                  content.setLayout(cardL);
                   
                  // Ajout des panneaux pan1 et pan 2 sur notre content
                  content.add(pan1);
                  content.add(pan2);
                   
                  // Ajout des panneaux boutonPane et content à notre fenetre
                  window.getContentPane().add(content, BorderLayout.CENTER);
                   
              }
              
              public void setVisible(boolean value) {
                  window.setVisible(value);
              }
              
              
              public static void main(String[] args) {
                  Interface i = new Interface();
                  i.setVisible(true);
              }
          }



          • Partager sur Facebook
          • Partager sur Twitter
            30 novembre 2020 à 13:24:57

            public class Historique extends SourcePlanification {
            
            	public static ArrayList<?> testPlanification3(String date){ //historique des planifs
            

            Par exemple, je veux que dans mon panel 1 de mon interface, on affiche ce que retourne ma méthode testPlanification3, je suis censé faire comment ?
            L'héritage est utilisé pour pouvoir récupérer les attributs et les méthodes d'une classe mère sans les redéfinir non ?

            -
            Edité par LawJava01 30 novembre 2020 à 13:26:14

            • Partager sur Facebook
            • Partager sur Twitter
              30 novembre 2020 à 13:30:57

              Ligne 27 de ta classes Interface, comment tu fais pour avoir accès à la méthode "add" qui n'est pourtant pas dans ta classe? C'est le même principe, il faut juste avoir une instance de la classe dans laquelle la méthode que tu veux appeler se trouve. Là ta méthode "testPlanification3" est même statique, donc ta classe Interface tu fais juste ça:

              List<String> planifications = Historique.testPlanification3("date");



              • Partager sur Facebook
              • Partager sur Twitter
                30 novembre 2020 à 13:46:37

                C'est déjà beaucoup plus clair, merci.

                pan1.add(new JLabel(Historique.testPlanification3("2020-11-04")));

                Ca m'affiche rien cependant..

                Une méthode de type string qui prend un paramètre string peut retourner une liste ?  

                EDIT : Ma méthode de type Arraystring a en sortie une liste de plusieurs string sauf que JJLabel doit avoir comme paramètre un string

                Je dois prendre toute ma liste et la concaténer pour avoir un seul string ? ca me parait lourd un peu

                -
                Edité par LawJava01 30 novembre 2020 à 13:51:06

                • Partager sur Facebook
                • Partager sur Twitter
                  30 novembre 2020 à 13:51:35

                  JeuneCodeur a écrit:

                  Une méthode de type string qui prend un paramètre string peut retourner une liste ?  


                  Bien sûr. Par contre je ne vois pas comment la ligne que tu as postée peut compiler?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    30 novembre 2020 à 13:54:55

                    kulturman a écrit:

                    JeuneCodeur a écrit:

                    Une méthode de type string qui prend un paramètre string peut retourner une liste ?  


                    Bien sûr. Par contre je ne vois pas comment la ligne que tu as postée peut compiler?

                    Oui j'ai corrigé le soucis

                    -
                    Edité par LawJava01 1 décembre 2020 à 9:35:44

                    • Partager sur Facebook
                    • Partager sur Twitter

                    IHM avec Spring

                    × 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