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

avec Java Discussion :

Création d'un menu hiérarchique à partir d'une HashMap (Swing)


Sujet :

avec Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Création d'un menu hiérarchique à partir d'une HashMap (Swing)
    Bonjour,
    Je suis nouveau en Java, je souhaite créer un menu hiérarchique à partir d'une Hashmap ayant en clé des nom de packages et en valeurs une liste des classes contenu dans les packages.
    Voici le script produit pour le moment:
    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
     
            JFrame maFrame = new JFrame("Open Jar File");
            maFrame.setLocationRelativeTo(null);
            maFrame.setSize(new Dimension(600, 300));
            JMenuBar menuBar = new JMenuBar();
            JMenu fichierMenu = new JMenu("Choix des Package");
            ArrayList<JMenu> pck = new ArrayList<JMenu>();
            ArrayList<JMenuItem> clas = new ArrayList<JMenuItem>();
     
            for (int i = 0; i < testMap.keySet().size(); i++) {
                pck.add(new JMenu(testMap.keySet().toString()));
                clas.add(new JMenuItem(testMap.values().toString()));
            }
     
            fichierMenu.setLayout(new GridLayout());
     
     
            for (JMenu b : pck) {
                fichierMenu.add(b);
                for(JMenuItem v:clas){
                b.add(v);  
            }}
     
            menuBar.add(fichierMenu);
            maFrame.setJMenuBar(menuBar);
            maFrame.setVisible(true);
        }
    Pour ce script j'ai repris la même base qu'un script proposé sur ce lien: https://www.developpez.net/forums/d5...bleau-boutons/.
    Le problème est que la fenêtre afficher ne contient pas de menu mais je ne comprends pas pourquoi.
    Pouvez vous m'indiquez mon/mes erreur(s) s'il vous plaît?
    Merci.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 996
    Points
    7 996
    Par défaut
    Bizzare chez moi elle contient bien un menu.

    Nom : DUL.jpg
Affichages : 504
Taille : 18,9 Ko

    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
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.util.ArrayList;
     
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
     
    public class Snippet
    {
    	public static void main(String args[])
    	{
    	    JFrame maFrame = new JFrame("Open Jar File");
    	    maFrame.setLocationRelativeTo(null);
    	    maFrame.setSize(new Dimension(600, 300));
    	    JMenuBar menuBar = new JMenuBar();
    	    JMenu fichierMenu = new JMenu("Choix des Package");
    	    ArrayList<JMenu> pck = new ArrayList<JMenu>();
    	    ArrayList<JMenuItem> clas = new ArrayList<JMenuItem>();
     
    	    pck.add(new JMenu("AAA"));
            clas.add(new JMenuItem("A1"));
    	    pck.add(new JMenu("BBB"));
            clas.add(new JMenuItem("B1"));
    	    pck.add(new JMenu("CCC"));
            clas.add(new JMenuItem("B1"));
     
    	    fichierMenu.setLayout(new GridLayout());
     
     
    	    for (JMenu b : pck) {
    	        fichierMenu.add(b);
    	        for(JMenuItem v:clas){
    	        b.add(v);  
    	    }}
     
    	    menuBar.add(fichierMenu);
    	    maFrame.setJMenuBar(menuBar);
    	    maFrame.setVisible(true);
    	}
    }
    Mais évidemment je n'ai montré que le dernier menu, les autres menu n'ont pas de sous éléments ... car tu ne peux pas réutiliser des composants swing a différents endroits.

    Ici tu essaye de rajouter les même JMenuItem qui sont déja dans utilisé et donc au final tu ne vois que pour le dernier JMenu.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Bizzare chez moi elle contient bien un menu.

    Nom : DUL.jpg
Affichages : 504
Taille : 18,9 Ko

    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
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.util.ArrayList;
     
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
     
    public class Snippet
    {
    	public static void main(String args[])
    	{
    	    JFrame maFrame = new JFrame("Open Jar File");
    	    maFrame.setLocationRelativeTo(null);
    	    maFrame.setSize(new Dimension(600, 300));
    	    JMenuBar menuBar = new JMenuBar();
    	    JMenu fichierMenu = new JMenu("Choix des Package");
    	    ArrayList<JMenu> pck = new ArrayList<JMenu>();
    	    ArrayList<JMenuItem> clas = new ArrayList<JMenuItem>();
     
    	    pck.add(new JMenu("AAA"));
            clas.add(new JMenuItem("A1"));
    	    pck.add(new JMenu("BBB"));
            clas.add(new JMenuItem("B1"));
    	    pck.add(new JMenu("CCC"));
            clas.add(new JMenuItem("B1"));
     
    	    fichierMenu.setLayout(new GridLayout());
     
     
    	    for (JMenu b : pck) {
    	        fichierMenu.add(b);
    	        for(JMenuItem v:clas){
    	        b.add(v);  
    	    }}
     
    	    menuBar.add(fichierMenu);
    	    maFrame.setJMenuBar(menuBar);
    	    maFrame.setVisible(true);
    	}
    }
    Mais évidemment je n'ai montré que le dernier menu, les autres menu n'ont pas de sous éléments ... car tu ne peux pas réutiliser des composants swing a différents endroits.

    Ici tu essaye de rajouter les même JMenuItem qui sont déja dans utilisé et donc au final tu ne vois que pour le dernier JMenu.
    Merci de ta réponse, je suppose que ma hashmap ne devait pas être bien construite, ce n'est donc pas possible de créer un menu hiérarchique à partir d'une hashmap ?

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Donc si j'ai bien compris il faudrait que j'utilise autant de hashmap que j'ai de package pour pouvoir différencier les JMenus ?

Discussions similaires

  1. [XL-2013] Création d'un menu déroulant à partir d'une userform
    Par Tcool27 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/09/2014, 15h07
  2. [Conception] Menu deroulant à partir d'une table volumineuse
    Par newbycool dans le forum Modélisation
    Réponses: 15
    Dernier message: 20/04/2007, 11h26
  3. [MySQL] Création d'un fichier xml à partir d'une table
    Par astrolane dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/12/2006, 23h12
  4. Réponses: 1
    Dernier message: 29/10/2006, 05h04

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