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 :

JMenu dans un JMenu


Sujet :

AWT/Swing Java

  1. #1
    HNT
    HNT est déconnecté
    Membre actif Avatar de HNT
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    448
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 448
    Points : 293
    Points
    293
    Par défaut JMenu dans un JMenu
    Bonjour,

    Comme le titre l'indique, je voudrais mettre un JMenu dans un JMenu. Le second menu n'est pas affiché (juste un petit carré) voici mon code
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    //On ajoute les menu à la menu bar
    protected void createJMenuBar()
    	{
    		JMenuBar bar = new JMenuBar();
    		JMenu menu = menuLEtF();
    		JMenu menuPrinc = menuPrinc();
    		JMenu about = menuAbout();
    		bar.add(menuPrinc);
    		bar.add(menu);
    		bar.add(about);
    		setJMenuBar(bar);	
    	}
    //la méthode problème : celle qui défini menuPrinc
    private JMenu menuPrinc()
    	{
    		JMenu menuPrinc = new JMenu("Menu");
    		ButtonGroup group = new ButtonGroup();
    //Définition du sous-menu
    		comptesEx = new JMenu("Connection au comptes");
    		comptesEx.addActionListener(new ActionListener ()
    				{
    					public void actionPerformed(ActionEvent event)
    					{
    						ButtonGroup listeCompte = new ButtonGroup();
    						listeItem = new JMenuItem();
    						listeCompte.add(listeItem);
    						listeItem = listingDesComptes();
    						comptesEx.add(listeItem);
    					}
    				}
    		);
    		group.add(comptesEx);
    		menuPrinc.add(comptesEx);
    //fin du sous-menu
    		JMenuItem quit = new JMenuItem("Quitter");
    		quit.addActionListener(new ActionListener()
    				{
    					public void actionPerformed(ActionEvent event)
    					{
    						System.exit(0);
    					}
     
    				});
    		group.add(quit);
    		menuPrinc.add(quit);
    		return menuPrinc;
    	}
    //remplissage du JMenuItem correspondant au second JMenu
    	private JMenuItem listingDesComptes()
    	{
    		JMenuItem liste = new JMenuItem();
    		liste.add(new JLabel("test"));
    		liste.add(new JTextField(10));
    		//listing des comptes avec action-listener -> registre de compte ftp
    		return liste;
    	}
    Je n'ai qu'un carré de 1px/1px en guise de second JMenu, si quelqu'un a une idée...

  2. #2
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Pourquoi tu crees un ButtonGroup pour metter ton JMenu et ton JMenuItem dans menuPrinc() ? Tu n'as pas besoin de ca et je pense que cela provoque ton probleme. Pareil pour le ButtonGroup listeCompte, il est inutile.

  3. #3
    HNT
    HNT est déconnecté
    Membre actif Avatar de HNT
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    448
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 448
    Points : 293
    Points
    293
    Par défaut
    Ok j'ai fait ce que tu m'as dit (du moins je le pense)
    et j'obtiens le code suivant qui ne marche pas mieux.
    En fait c'est pire avant il y avait un bouton actif maintenant il n'es meme plus afficher
    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
    31
    32
    private JMenu menuPrinc()
    	{
    		JMenu menuPrinc = new JMenu("Menu");
    		comptesEx = new JMenu("Connection au comptes");
    		comptesEx.addActionListener(new ActionListener ()
    				{
    					public void actionPerformed(ActionEvent event)
    					{
    						listeItem = new JMenuItem();
    						listeItem = listingDesComptes();
    						comptesEx.add(listeItem);
    					}
    				}
    		);
    		menuPrinc.add(comptesEx);
    		JMenuItem but1 = new JMenuItem("Gérer les comptes");
    //Ajout d'autre JMenuItem
    .
    .
    .
    private JMenuItem listingDesComptes()
    	{
    		JMenuItem liste = new JMenuItem();
    		JPanel pan = new JPanel();
    		pan.add(new JLabel("test"));
    		pan.add(new JTextField(10));
    		pan.add(new JButton("tester"));
    		liste.add(pan);
     
    		//listing des comptes avec action-listener -> registre de compte ftp
    		return liste;
    	}

  4. #4
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Mais pourquoi tu mets un actionlistener ? Cree directement tout ton menu. Et pourquoi tu fais ca :

    listeItem = new JMenuItem();
    listeItem = listingDesComptes();

    Tu crees ton objet et le remplace immediatement. Ensuite pourquoi crees-tu un bouton dans un JMenuItem avec un JTextField ? C'est super etrange comme menu ton truc.

    Reprend ton menu depuis le debut en regardant un exemple concret. C'est pas plus complique que 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
        private void buildMenuBar() {
            JMenuBar menuBar = new JMenuBar();
     
            JMenu menu = new JMenu("File");
            addMenuItem(menu, "Open...", "stock_open");
            addMenuItem(menu, "Exit", "stock_exit");
            menuBar.add(menu);
     
            menu = new JMenu("Document");
            addMenuItem(menu, "First Page", "stock_first-page");
            addMenuItem(menu, "Previous", "stock_previous");
            addMenuItem(menu, "Next", "stock_next");
            addMenuItem(menu, "Last Page", "stock_last-page");
            menuBar.add(menu);
     
            menu = new JMenu("View");
            addMenuItem(menu, "Zoom In", "stock_zoom-in");
            addMenuItem(menu, "Zoom Out", "stock_zoom-out");
            addMenuItem(menu, "Reset Zoom", "stock_zoom-1");
            menuBar.add(menu);
     
            setJMenuBar(menuBar);
        }
     
        private JMenuItem addMenuItem(JMenu menu, String title, String fileName) {
            JMenuItem item = new JMenuItem(title);
            try {
                ImageIcon imageIcon = new ImageIcon(getClass().getResource("resources/" + fileName + "_item.png"));
                item.setIcon(imageIcon);
            } catch (Exception e) {
            }
            menu.add(item);
            return item;
        }

  5. #5
    HNT
    HNT est déconnecté
    Membre actif Avatar de HNT
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    448
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 448
    Points : 293
    Points
    293
    Par défaut
    Je me suis mal exprimé ce n'est pas ça que je veut faire. (ca je sais le faire)
    Ce que je veut faire c'est mettre un JMenu dans un JMenu pas les à coté des autres. Schématiquement ça donnerait ceci.

  6. #6
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Points : 134
    Points
    134
    Par défaut
    Ha mais c'est donc pas un JMenu...
    C'est un submenu ton truc...

  7. #7
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Rah mais c'est pas compliqué quand même :

    JMenu menu = new JMenu("Fichier");
    menu.add(new JMenuItem("Ouvrir"));
    JMenu sousMenu = new JMenu("Récents");
    menu.add(sousMenu);

    Voila c'est tout simple. Ni JButton ni action listener ni group...

  8. #8
    HNT
    HNT est déconnecté
    Membre actif Avatar de HNT
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    448
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 448
    Points : 293
    Points
    293
    Par défaut
    Lol,

    mais pourquoi faire simple quand on peut faire compliqué ?
    Merci Gfx ca marche impec.

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

Discussions similaires

  1. Changer taille police dans un JMenu
    Par TomPouce05 dans le forum Composants
    Réponses: 11
    Dernier message: 14/09/2015, 10h13
  2. tracer une ligne verticale dans un JMenu
    Par j_esti dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 17/09/2013, 21h02
  3. Items présents dans un JMenu et un JPopupMenu
    Par collect dans le forum Général Java
    Réponses: 5
    Dernier message: 21/07/2013, 10h59
  4. [Composant] JMenu dans JComboBox
    Par khaybar dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 06/01/2008, 20h20
  5. [JMENU] Icone dans un JMenu
    Par stefluc dans le forum Composants
    Réponses: 2
    Dernier message: 12/04/2005, 00h35

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