Bonjour,

Je suis en train de créer un de mes premiers programmes JAVA, et je suis confronter à un problème assez compliqué.

Je m'explique, il faudrait que j'ajoute des menuBars à la volée lors d'un clic sur l'un d'entre eux, jusque la aucun soucis, seulement je ne vois comment je pourrais faire pour ajouter l'écouteur qui va avec afin d'effectuer des actions sur son click.

Par exemple :
J'ai un sous-menu "ADD"
Lors d'un click de celui-ci, j'ajoute un menu Menu1 avec comme sous-menu (sous-menu1 et sous-menu2) (pas de problème )

Mais lorsque je click sur l'un d'eux, il ne se passera rien sans l'ajout de listener... Et e ne vois vraiment pas comment faire.

Merci d'avance.
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
public class Fenetre extends JFrame {
	private JMenuBar menuBar = new JMenuBar();
	private JMenu menu1 = new JMenu("Fichier");
	private JMenu menu2 = new JMenu("Créer");
	private JMenu menu3 = new JMenu("?");
 
	private JMenuItem item10 = new JMenuItem("Nouveau");
	private JMenuItem item11 = new JMenuItem("Fermer");
	private JMenuItem item20 = new JMenuItem("Classe");
	private JMenuItem item21 = new JMenuItem("Interface");
 
	private JMenuItem item30 = new JMenuItem("A propos");
 
	private JMenuItem item50 = new JMenuItem("Relation");
	private JMenuItem item51 = new JMenuItem("Importation");
	private JMenuItem item52 = new JMenuItem("Attribut");
	private JMenuItem item53 = new JMenuItem("Méthode");
	private JMenuItem item54 = new JMenuItem("Exception");
 
	public void setClasse(String string){
		JMenu temp = new JMenu(string);
		temp.add(item50);
		temp.add(item51);
		temp.add(item52);
		temp.add(item53);
		temp.add(item54);
		this.menuBar.add(temp);
 
		this.setJMenuBar(menuBar);
	}
	public Fenetre(){
		this.setSize(400, 200);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setLocationRelativeTo(null);
 
		//On initialise nos menus
		//--------------------------	
		this.menuBar.add(menu1);
		this.menuBar.add(menu2);
		this.menuBar.add(menu3);
 
		this.menu1.add(item10);
		this.menu1.addSeparator();
		this.menu1.add(item11);
		this.menu2.add(item20);
		this.menu2.add(item21);
		this.menu3.add(item30);
 
		item11.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0) {
				System.exit(0);
			}
		});
 
 
// Le must serait de pouvoir faire ceci :s
		menuBar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
                                Object source = e.getSource();
// Faire ensuite le traitement pour l'action cliquer, grace à getSource, je peux connaitre le bouton cliquer, il me faudrait aussi récupérer le nom du menu principal (celui ajouter à la volée)
				if(source == //Je ne sais justement pas quoi)
                                     setClasse("Class");
                                // Et les autres essais.
				System.out.println("Clique sur listerner"+ source);
			}
		});
 
		this.setJMenuBar(menuBar);
		this.setVisible(true);
	}
Comment dois-je faire pour faire un actionListener global permettant de traiter toutes les actions facilement puisque tous les sous-menu générés seront les memes. Il n'y aura donc pas de problème (si en plus je peux associer un nom et récupérer celui-ci au parent du sous-menu clické).

Merci d'avance pour votre aide.