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 :

Adaptation JMenu programme


Sujet :

AWT/Swing Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Adaptation JMenu programme
    Bonjour,

    J'ai un petit cas concret à poser...

    En fait, je suis en train de construire une appli JAVA plutôt simple...

    Elle se compose d'un JFrame, d'un JMenu et d'un JPanel...

    Lorsque je clique sur un élément du menu, un Panel appraît dans la frame... (Normal jusque là...)

    Quelle méthode utiliser pour désactiver l'option du menu qui m'a fait apparaître mon Panel ( sachant que le panel hérite uniquement de JPanel et que le menu se trouve dans la frame )...

    Trois jours que je bloque dessus, si quelqu'un à déjà eu ce genre de problème à résoudre...

  2. #2
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    t'as une méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monJMenuItem.setEnabled(false);
    Plzzz pas de questions par MP.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Je suis d'accord, mais comment faire pour réactiver ton option ( je sais que c'est setEnable(true) ), à quel moment et par quel moyen?

  4. #4
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    c'est a toi de définir sur quel événement tu veux qu'il se réactive

    fais une méthode pour activer ton JMenuItem moi je ferais un truc de ce genre :
    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
     
    public class
    static JMenuItem nouvo;
     
    public... {
    ...
    JMenuItem nouvoItem= new JMenuItem("Nouvo");
    ...
    }
     
    static void setActiveItem(JMenuItem monItem,boolean mode){
     monItem.setEnabled(mode);
    }
     
    setActiveItem(nouvoItem,true);
    Plzzz pas de questions par MP.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Certes, mais le JMenuItem se trouve dans une classe JFrame , alors que mon setEnable(true) (pour réactiver l'option) devrait se trouver dans une autre classe JPanel...

  6. #6
    Membre actif Avatar de Lethal
    Profil pro
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2006
    Messages : 194
    Points : 227
    Points
    227
    Par défaut
    Je pense que tu va devoir bouquiner un peu sur "l'orienté objet" avant de commencer a programmer une interface graphique

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    J'en fait déjà, ce n'est pas là le problème...

    mais si tu as une solution à me proposer, je t'écoute avec attention...

  8. #8
    Membre actif Avatar de Lethal
    Profil pro
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2006
    Messages : 194
    Points : 227
    Points
    227
    Par défaut
    Qui est listener du JMenu pour savoir que l'option a été sélectionnée?
    Si c'est ta JFrame, elle est censée connaitre le Panel non?

    Si tu veux qu'un objet A lance une méthode d'un objet B, A doit avoir une référence de B, ou d'un autre objet qui lui en a une.

    Citation Envoyé par LGDRA Voir le message
    J'en fait déjà, ce n'est pas là le problème...
    Je pense bien que si.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Lethal Voir le message
    Qui est listener du JMenu pour savoir que l'option a été sélectionnée?
    Si c'est ta JFrame, elle est censée connaitre le Panel non?

    Le listener est sur le Frame, bien sûr...

    Comment peux-tu agir sur l'élément JFrame depuis un élément JPanel qui se trouve sur un autre fichier java?

    Si j'instancie un nouvel objet de ma Frame, ça ne servira à rien...

  10. #10
    Membre actif Avatar de Lethal
    Profil pro
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2006
    Messages : 194
    Points : 227
    Points
    227
    Par défaut
    Ton panel doit connaitre ta fenêtre.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    public class MonPanel extends JPanel {
     
        MaFrame maframe;
     
        public MonPanel() 
        {
            super();
            JButton bt = new JButton("Dit bonjour !");
            this.setLayout(new FlowLayout());
            this.add(bt);
            bt.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent evt)
                {
                    methodeQuiAppelleMaFrame();
                }
     
            });
           // code
        }
        public void setParentFrame(MaFrame mf)
        {
            maframe = mf;
        }
     
        public void methodeQuiAppelleMaFrame()
        {
            maframe.ditBonjour();
        }
    }
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
     public class MaFrame extends JFrame
    { 
        MonPanel monpanel;
     
        public MaFrame()
        {
            super();
            monpanel = new MonPanel();
            this.setLayout(new GridLayout(1,1));
            this.add(monpanel);
            monpanel.setParentFrame(this);
        }
     
        public void ditBonjour()
        {
            System.out.println("Bonjour");
        }
     
        public static void main(String args[])
        {
            MaFrame mf = new MaFrame();
            mf.setVisible(true);
        }
    }
    C'est vraiment les bases.

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Exact, ça fonctionne...

    Comme quoi, les bases ne sont pas assez solides...

    Merci...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Adapter un programme java sous linux
    Par dahoo dans le forum Général Java
    Réponses: 13
    Dernier message: 02/10/2010, 10h08
  2. Adapter son programme en fonction de la résolution de l'écran
    Par nguessan_dominique dans le forum Débuter
    Réponses: 2
    Dernier message: 02/01/2010, 13h23
  3. comment adapter un programme vb 6.0 pour tous les écran
    Par saidm dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/05/2009, 15h29
  4. Adapter un programme perl Unix sous Windows
    Par jasmer51 dans le forum Langage
    Réponses: 4
    Dernier message: 16/04/2009, 21h16
  5. Adapter le programme à l'essai loadé
    Par Muriellle dans le forum Signal
    Réponses: 4
    Dernier message: 24/10/2007, 14h52

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