Partage
  • Partager sur Facebook
  • Partager sur Twitter

Passage d'objet

Sujet résolu
    20 juin 2008 à 18:02:11

    Bonjour tout le monde,

    Je rencontre une difficulté.

    J'ai deux classes : classe fenetre, classe menu

    Dans fenetre, j'instancie ma fenêtre et je la passe dans une méthode de menu.

    En c++, je le ferai pas référence.

    En java, je le fais comme ça en résumé :

    Dans fenetre :

    menu_test.setmenu(this);
    


    Dans menu :

    class menu 
    {
       Jtable menu = new JTable();   
       menu(){}
    
        setmenu(fenetre f)
        {
           f.add(menu);
        }
    }
    


    Evidémment, mon menu ne s'affiche pas.

    Par contre je peux accéder à setName(),getName...

    f.setname("Test java");
    f.getname();
    


    J'ai sûrement oublié quelque chose mais je ne vois pas trop quoi...

    Merci d'avance de votre aide

    HELP. SOS. MAYDAY
    • Partager sur Facebook
    • Partager sur Twitter
      20 juin 2008 à 18:42:01

      Heu... là tu ajoute un JTable et non un menu, d'ailleurs prends l'habitude de mettre la première lettre d'un objet en majuscule. Et puis pour ajouter un menu dans une JFrame pense à utiliser la méthode setJMenuBar pour ajouter une barre de menu.
      • Partager sur Facebook
      • Partager sur Twitter
        20 juin 2008 à 19:57:07

        En passant, en Java, tous les objets sont passés par référence, les types primitifs comme int ou float étant passés par valeur.
        • Partager sur Facebook
        • Partager sur Twitter
          20 juin 2008 à 22:43:45

          Merci à tous de vos réponses.

          Désolé pour la syntaxe de mes exemples. Mais je m'attachai plus au fond qu'à la forme.

          Si les passages d'objet se font bien par réréfence, pourquoi je ne peux pas ajouter d elements à ma fenetre ?

          Ah j'ai un autre soucis. Pour faire un test j'ai mis extends JApplet dans une mes classes. Après je l'ai enlevé. Et Eclipse m'affiche toujours l'applet...

          Il y a pas un verrou quelque part ?
          • Partager sur Facebook
          • Partager sur Twitter
            21 juin 2008 à 9:36:11

            fait un clic droit le projet->Run As->Java Application
            • Partager sur Facebook
            • Partager sur Twitter
              21 juin 2008 à 12:13:58

              Tu peux sans problème ajouter un JComponent à ta JFrame dans une methode, si ça ne fonctionne pas, c'est qu'il doit te manquer un truc, donne un peu plus de code peut être. En tout cas aucun passage par valeur ne sera jamais effectué pour un objet.

              Puis la ligne :

              Jtable menu = new JTable();
              

              Comporte un probleme de casse. Puis comme dis plus haut, JTable sont des tableaux, et non des menus. Regarde du côté de JMenu, JMenuBar, JMenuItem. Ensuite, un JTable vide n'affiche rien, et ça parrait tout à fait logique, va voir dans la documentation : doc. Tu trouveras tout ce que tu veux dans le package javax.swing.
              • Partager sur Facebook
              • Partager sur Twitter
                21 juin 2008 à 16:54:06

                Ayé.

                j'ai trouvé la solution.

                La voici :

                J'ai mis l'attribut "panel" en public dans ma classe menu :

                public JPanel panel = new JPanel();

                Ensuite j'ai pu passer mon objet à ma classe fenêtre et modifier mon panel.

                Donc j'ai repassé mon panel en public et j'ai tout simplement ajouter une méthode d'ajout de composents dans ma classe fenêtre

                J'ai honte...

                C'est la base mais je n'avais pas pensé à cette solution

                merci encore pour vos réponses

                Bonne journée
                • Partager sur Facebook
                • Partager sur Twitter
                  21 juin 2008 à 17:38:41

                  Hum, j'ai pas compris grand chose à ta réponse, si ce n'est que tu as mis des attributs publiques, les cas où un attribut se retrouve public sont très rares. A mon avis tu n'en as pas besoin, utilise déjà des accesseurs, getPanel() qui fait un return m_panel; par exemple. C'est bien plus propre.

                  Ensuite, ton histoire de menu est reglée donc ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 juin 2008 à 0:40:40

                    Bonsoir.

                    Oui mon histoire de menu est réglée.

                    Je peux ajouter ce que je veux dans ma JFrame prinicipale.

                    J'ai une autre question : Est il-possible de vider un JTable pour le remplir de nouveau ?

                    Merci d'avance
                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 juin 2008 à 3:55:14

                      J'ai pas utilisé swing depuis un moment, mais la doc est toute à toi, regarde les différentes méthodes de JTable, à mon avis tu dois pouvoir trouver ça. Sinon travailler avec un IDE proposant l'auto complétion aide en général, au moins à se faire une idée sur ce que l'on cherche, on peut ensuite se faire une idée plus précise via la doc.
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Passage d'objet

                      × 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