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 :

Question sur le Jmenu avec un sous-menu


Sujet :

AWT/Swing Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 36
    Par défaut Question sur le Jmenu avec un sous-menu
    Bonjour,

    Je vais essayer d'être le plsu clair possible même si c'est assez difficile à décrire.
    Voilà, j'ai une JFrame avec un JMenuBar perso. Dans cette JMenuBar, je mets un un premier JMenu("Fichier") ensuite j'ajoute à fichier un JMenu("Nouveau") dans lequel je place 3 JMenuItem ("Message Text", "Message HTML", "Message Image")

    • Fichier
      • Nouveau
        • Message text
        • Message HTML
        • Message Image
      • ....
      • Quitter
    • ....
    • Aide
    J'arrive a afficher le bon type de fenetre en fonction du message séléctionner, ca il n y a aucun probleme. En revanche, j'aimerais savoir si il est possible lorsque je clique sur Nouveau (qui est un JMenu) ca m ouvre automatiquement un message Text ???

    Suis je assez clair ???


    Merci

  2. #2
    Membre éprouvé Avatar de minus
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 153
    Par défaut
    En fait tu voudrais que ton JMenu "Nouveau" puisse faire office aussi de JMenuItem.... Mais la je vois pas comment.


    Peut-etre en travaillant sur la methode .doClick() de JMenu. Si j'ai bien compris cette methode gere les clics et l'apparition du popup des menu-items. Donc par exemple en faisant en sorte que si tu double clic tu fasses une nouvelle action.
    (je met un grand ? car je me suis jamais ammusé a ca encore )

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 139
    Par défaut
    salut !

    voici un exemple, de ce qui me parait etre ton besoin, tout en sachant que je n'ai pas tout à fait compris ton besoin donc je me base sur l'arborescence montrée plus haut

    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
        //--- JMENU DECLARATION -----
    	    JMenuBar myMenuBar = new JMenuBar(); 
    	    
    	    // File Menu
    	    JMenu file = new JMenu("Fichier");
    	    myMenuBar.add(file);
    	    
    	    JMenu jOuvrir = new JMenu("Ouvrir..."); // item du menu fichier
    	   
                // text file -- sous menu 1
    	    JMenuItem jOpenTxt = new JMenuItem("Fichier TXT");
    	    jOpenTxt .addActionListener(this); // gestion des evenements
    	    jOuvrir.add(jOpenTxt); // ajout dans le menu
    	    
    	    // html file -- sous menu 2
    	    JMenuItem jOpenHtml = new JMenuItem("Fichier HTML");
    	    jOpenHtml .addActionListener(this); 
    	    jOuvrir.add(jOpenHtml );
    
    	    file.add(jOuvrir); // ajout du menu Ouvrir (avec ses sous menu)

  4. #4
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Tu peux essayer ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    menuNouveau.addMenuListener(new MenuListener(){
     
                public void menuSelected(MenuEvent arg0) {
                    System.out.println("Coucou");
                }
     
                public void menuDeselected(MenuEvent arg0) {
                    System.out.println("Envoir !");
                }
     
                public void menuCanceled(MenuEvent arg0) {
     
                }});

  5. #5
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Je ne suis pas trop pour cette approche-là. Imagine le gars qui fouille les menus, et fait apparaître 3 fois le sous menu "Nouveau" : tu auras créé 3 instances de ton message pour rien.

    J'opterais plus pour une méthode createMessage(...) appelée par le ou les actionListeners.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 139
    Par défaut
    Je suis d'accord avec xavlours... car si tu prends le cas d'une machine qui n'as pas de grosses performances et que tu fais un tas de menu ... ton appli risque de le sentir passer
    -> pas trop ergonomique pour l'utilisateur

    Citation Envoyé par xavlours
    Je ne suis pas trop pour cette approche-là. Imagine le gars qui fouille les menus, et fait apparaître 3 fois le sous menu "Nouveau" : tu auras créé 3 instances de ton message pour rien.

    J'opterais plus pour une méthode createMessage(...) appelée par le ou les actionListeners.

  7. #7
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    +1
    Même si je t'ai proposé une solution , tu vas rapidement te rendre compte que ca sera lourd pour l'utilisateur...
    +++
    Ju

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 46
    Par défaut
    Salut à tous,

    il me semble que mon besoin ressembe à celui de Sylmandel. J'aimerais avoir une arborescence avec des JMenu et JMenuItems. Cependant, j'aimerais pouvoir aussi effectuer des actions en cliquant ou double cliquant sur les JMenu (sur la racine d'un JMenu).

    Précisément, j'aimerais pouvoir controller l'affichage des menu popup des JMenu. En fait je n'aimerais pas que l'affichage du sous-menu soit automatiquement en passant la souris sur le JMenu, mais en cliquant (ou double cliquant dessus). J'ai essayé d'ajouter des actionsListener au JMenu (comme je l'ai fait pour les JMenuItem) juste déjà pour essayer, mais rien n'y fait. Il ne reconnait pas le click de la souris.

    Quelqu'un aurait-il une idée!? Merci

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/09/2009, 11h03
  2. Questions sur le debuggage avec forms builder 9i
    Par david_m dans le forum Forms
    Réponses: 0
    Dernier message: 09/11/2007, 14h28
  3. question sur la configuration d'un sous-réseau
    Par youp_db dans le forum Hardware
    Réponses: 2
    Dernier message: 03/05/2007, 18h50
  4. menu avec un sous menu
    Par jiji-789 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/09/2006, 13h16
  5. simple question sur du html avec frames
    Par Thordax dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/05/2006, 11h48

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