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

Agents de placement/Fenêtres Java Discussion :

[JMenuBar] Problème d'écouteurs


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2004
    Messages : 178
    Par défaut [JMenuBar] Problème d'écouteurs
    Bonjour,

    je suis en train de développer une IHM, et là je crée ma barre de menu.

    Par la suite, il faudra rajouter des écouteurs. Comme je suis toujours en train de me demander s'il n'y a pas une façon pratique de faire les choses, j'ai imaginé le cas suivant.

    Imaginez que je dispose d'une JMenuBar, de 10 JMenu, et de 10 JMenuItem par JMenu.

    Lorsque je rajoute un écouteur, j'écris quelque chose comme çà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.ajouter.addActionListener(this);
    Le truc c'est que là, on en a 100 en tout de JMenuItem( 10* 10). Et là je me dis : je vais quand même pas me frapper les 100 écouteurs à la main, il y a forcément quelque chose de plus intelligent.

    Alors voilà ma question, quelqu'un a-t-il une astuce ?

    Merci à tous.

  2. #2
    Nouveau candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 2
    Par défaut
    A ma connaissance, non il n'y pas d'autre moyen que d'associer à chaque JMenuItem une action via un Listener. Tu peux à la rigeur créer une 'belle' méthode qui réalise les opération répétitives pour mieux structurer ton code. De plus, ton Listener peut être une classe, la classe courante (this) ou une inner classe mais à par ça ...

    Il faut savoir que la pluspart des IDE ont des outils permettant de créer automatiquement des interfaces de ce type et surtout des menus aussi simples pour gagner du temps (JBuilder, Eclipse, et autres ... )

    Dom

  3. #3
    Membre émérite
    Avatar de c-top
    Profil pro
    Turu
    Inscrit en
    Septembre 2003
    Messages
    972
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Turu

    Informations forums :
    Inscription : Septembre 2003
    Messages : 972
    Par défaut
    Et même avec un ide possedant un RAD tu devras cliquer autant de fois que tu installes d'écouteurs.

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 125
    Par défaut
    Si t'as un IDE qui possede un RAD il te faudrait faire autant de clics que d'objets auquel tu veux ajouter un Listener,certes....Mais faire 100 clics est toujours mieux que de saisir le meme texte (pratiquement) 100 fois.
    Et meme dans ce cas,tu peux copier une fois et coller 99 fois.
    Il n'y a donc pas de bile a se faire,de toute facon....
    Toujours est il que tu peux creer quelque chose qui va gerer tout ca

  5. #5
    Membre éprouvé

    Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2004
    Messages : 178
    Par défaut
    Bon ben merci, j'avais espoir :p

  6. #6
    Membre éprouvé

    Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2004
    Messages : 178
    Par défaut
    Je pense avoir trouvé, apparement çà marche :

    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
     
    private void CreerEcouteurMenu()
        {
            // Recupère tout les ITEM du menu et leur rajoute un ecouteur, evitant ainsi de le faire à la main
              int index_menu, index_item;
            // Parcours du menu
            for(index_menu = 0 ; index_menu < this.barremenu.getMenuCount(); index_menu ++)
            {
                // Parcours de chaque composant du menu
                for(index_item = 0; index_item < this.barremenu.getMenuindex_menu).getItemCount(); index_item ++ )
                {
                       this.barremenu.getMenu(index_menu).getItemindex_item).addActionListener(this);
                }
            }
     
        }

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

Discussions similaires

  1. 2048 bientôt fini, mais problème d'écouteurs
    Par gulux56 dans le forum EDT/SwingWorker
    Réponses: 3
    Dernier message: 30/04/2014, 16h51
  2. Problème d'écouteur sur un bouton
    Par popy67 dans le forum Débuter
    Réponses: 1
    Dernier message: 29/10/2008, 17h56
  3. problème d'écouteur dans une boucle
    Par dr3333 dans le forum Flash
    Réponses: 1
    Dernier message: 19/03/2008, 12h15
  4. [JComboBox] Problème d'accès et d'écouteurs
    Par michaeljeru dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 05/12/2006, 17h49
  5. Problème d'écouteur clavier
    Par m@t dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 19/01/2005, 23h05

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