Bonsoir,
Un JMenu est une extension d'un JMenuItem.
Donc on peut lui ajouter un ActionListener.
Mais lorsque je clique sur le menu, contrairement au JMenuItem, l'action n'est pas déclenchée.
Je pense que cela provient du fait que par défaut le clic sur un JMenu permet d'ouvrir un JPopUp contenant tous les JMenuItem du JMenu et comme dans mon cas il n'y en a pas, cela ne fait rien. Je pense qu'il faudrait que j'arrive à détourner l'action.
Exemple
Dans une fenêtre je verrai bien en barre de menu les deux menus : Bonjour et Menu
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 JMenuBar barre = new JMenuBar(); JMenu bonjour = new JMenu("Bonjour"); bonjour.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("Bonjour"); } }); barre.add(bonjour); JMenu menu = new JMenu("Menu"); JMenuItem item = new JMenuItem("Item Bonjour"); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("Item Bonjour"); } }); menu.add(item); barre.add(menu);
Le clic sur Bonjour ne fera rien, le clic sur Menu ouvrira ce menu et donnera accès à ItemBonjour, le clic sur ce ItemBonjour fera bien ce que l'on attend de lui.
J'espère avoir été clair.
Patrice
Partager