Salut.
Je veux réaliser un menu contextuel en java.c'est à dire lorsque je clique sur le boutton droit de la souris,le menu contextuel s'affiche.Pour cela,j'ai écrit c'est deux classes:
1)
2)
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 import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import javax.swing.JLabel; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JPopupMenu; public class menuContextuel extends JPanel implements MouseMotionListener, MouseListener { public JLabel l=new JLabel("label"); public menuContextuel() { addMouseListener(this); addMouseMotionListener(this); } public void mouseDragged(MouseEvent e) { } public void mouseMoved(MouseEvent e) { } public void mouseClicked(MouseEvent e) { JPopupMenu jPopupMenu1 = new JPopupMenu(); jPopupMenu1.add(new JMenuItem("aa")); jPopupMenu1.add(new JMenuItem("bb")); jPopupMenu1.add(new JMenuItem("cc")); jPopupMenu1.addSeparator(); jPopupMenu1.add(new JMenuItem("dd")); jPopupMenu1.show(this, e.getX(),e.getY()); } public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } }
Mais le menu contextuel n'est pas affiché que se soit je clique sur le boutton droit ou qauche de la souris.
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 import javax.swing.JFrame; public class Frame extends JFrame { public Frame() { super("title"); setDefaultCloseOperation(EXIT_ON_CLOSE); getContentPane().add("Center", new menuContextuel()); pack(); } public static void main(String[] args) { Frame frame = new Frame(); frame.setVisible(true); } } Le probleme c'est que le menu contextuel s'affiche si je clique sur le boutton droit de la souris et meme si je clique avec le boutton gauche de la souris. Pour cela j'ai modifié la méthode mouseClicked de la façon suivante: public void mouseClicked(MouseEvent e) { if(e.getButton() == MouseEvent.BUTTON2) { JPopupMenu jPopupMenu1 = new JPopupMenu(); jPopupMenu1.add(new JMenuItem("aa")); jPopupMenu1.add(new JMenuItem("bb")); jPopupMenu1.add(new JMenuItem("cc")); jPopupMenu1.addSeparator(); jPopupMenu1.add(new JMenuItem("dd")); jPopupMenu1.show(this, e.getX(),e.getY()); } }
Quel est le probleme?
Merci pour votre aide.
Partager