Bonjour,
Alors voilà j'ai un problème avec mon JPopupMenu.
J'ai une JFrame qui ouvre différentes JInternalFrame. Lorsque je click sur l'un de mes menu (dans un menuBar) de ma JFrame, celle-ci m'ouvre une JInternalFrame dans laquelle se trouve des JList et quelques boutons. J'ai voulu tester un JPopupMenu sur une JList. Seulement mon problème c'est que lorsque je fais un click droit sur un élément de ma JList sur lequel j'ai mis mon JPopupMenu, celui-ci apparaît comme si ma JList et la souris étaient situées tout en haut à gauche de l'écran, résultat, il n'apparaît pas là où est réellement ma souris...
Savez-vous d'ou cela peut venir ?
Au passage, quand je fais un click droit il ne me sélectionne pas l'item comme avec un click gauche. Une solution ?
Voici le code (il n'est pas entier, juste les parties qui nous intéressent):
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 private JScrollPane getJScrollPaneAdmin() { if (jScrollPaneAdmin == null) { jScrollPaneAdmin = new JScrollPane(); jScrollPaneAdmin.setBounds(new Rectangle(53, 45, 192, 316)); jScrollPaneAdmin.setViewportView(getJListAdmins()); } return jScrollPaneAdmin; } private JList getJListAdmins() { if (jListAdmins == null) { String[] data = { "Test1", "Test2", "Test3" }; jListAdmins = new JList(data); jListAdmins.setAutoscrolls(true); jListAdmins.addMouseListener(new java.awt.event.MouseAdapter() { public void mousePressed(java.awt.event.MouseEvent e) { if (e.getButton() == 3) { System.out.println("pressed"); getJPopupMenu(); jPopupMenu.setLocation(e.getX(), e.getY()); jPopupMenu.setVisible(true);} } }); } return jListAdmins; } private JPopupMenu getJPopupMenu() { if (jPopupMenu == null) { jPopupMenu = new JPopupMenu(); jPopupMenu.setVisible(true); jPopupMenu.add(getJMenuItemDetails()); } return jPopupMenu; } private JMenuItem getJMenuItemDetails() { if (jMenuItemDetails == null) { jMenuItemDetails = new JMenuItem("Test"); System.out.println("Blablabla"); } return jMenuItemDetails; }
Partager