Bonjour,
En commençant à coder une fenêtre graphique, j'ai tenté d'utiliser une même série d'items rouge et vert pour un menu dans une barre de la fenêtre mais également pour un menu surgissant. Les items semblent alors disparaitre du menu "Couleurs" en lançant le programme. Voici le code :
Si l'on retire le code compris entre "Début menu surgissant" et "Fin menu surgissant", les items du menu "Couleurs" peuvent à nouveau apparaitre.
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 import javax.swing.*; import java.awt.event.*; class Fenetre extends JFrame implements ActionListener { public Fenetre() { setTitle("Tests"); setSize(300, 150); setLocationRelativeTo(null); JMenuBar barre = new JMenuBar(); JMenu couleurs = new JMenu("Couleurs"), formes = new JMenu("Forme"); JRadioButtonMenuItem rouge = new JRadioButtonMenuItem("Rouge"), vert = new JRadioButtonMenuItem("Vert"); couleurs.add(rouge); couleurs.add(vert); ButtonGroup groupe = new ButtonGroup(); groupe.add(rouge); groupe.add(vert); JCheckBoxMenuItem rectangle = new JCheckBoxMenuItem("Rectangle"), ovale = new JCheckBoxMenuItem("Ovale"); formes.add(rectangle); formes.add(ovale); barre.add(couleurs); barre.add(formes); setJMenuBar(barre); /* Début menu surgissant */ final JPopupMenu couleursPopup = new JPopupMenu(); couleursPopup.add(rouge); couleursPopup.add(vert); addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent e) { if (e.isPopupTrigger()) couleursPopup.show(Fenetre.this, e.getX(), e.getY()); } }); /* Fin menu surgissant */ rouge.addActionListener(this); vert.addActionListener(this); rectangle.addActionListener(this); ovale.addActionListener(this); } public void actionPerformed(ActionEvent e) { System.out.println(e.getActionCommand()); } private static final long serialVersionUID = 1L; } public class Tests { public static void main(String[] args) { Fenetre fen = new Fenetre(); fen.setVisible(true); } }
Merci de votre aide et bonne journée !
Partager