Bonjour,
J'ai un soucis avec une application que je suis en train de développer. L’événement mouseEntered(mouseEvent e) ne me donne aucun résultat. Je m'explique: j'aimerais, au passage de la souris sur une icône en barre des tâches, qu'un popupMenu() s'ouvre. J'arrive pour l'instant à le faire en faisant clique droit mais cette fonctionnalité m'est offerte grâce au constructeur de la classe trayIcon. Avec le code cela risque d'être un peu plus clair:
Merci d'avance pour votre aide,
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108 /* * * * */ package systemtray; import java.awt.*; import java.awt.event.*; import java.util.logging.Level; import java.util.logging.Logger; public class SystemTrayTest { public SystemTrayTest() { final TrayIcon trayIcon; if (SystemTray.isSupported()) { try { SystemTray tray = SystemTray.getSystemTray(); Image image = Toolkit.getDefaultToolkit().getImage("tray.gif"); MouseListener mouseListener = new MouseListener() { @Override public void mouseClicked(MouseEvent e) { System.out.println("Tray Icon - Mouse clicked!"); } @Override public void mouseEntered(MouseEvent e) { System.out.println("Tray Icon - Mouse entered!"); } @Override public void mouseExited(MouseEvent e) { System.out.println("Tray Icon - Mouse exited!"); } @Override public void mousePressed(MouseEvent e) { System.out.println("Tray Icon - Mouse pressed!"); } @Override public void mouseReleased(MouseEvent e) { System.out.println("Tray Icon - Mouse released!"); } }; ActionListener exitListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("Exiting..."); System.exit(0); } }; PopupMenu popup = new PopupMenu(); MenuItem defaultItem = new MenuItem("Exit"); MenuItem skype = new MenuItem("Skype"); defaultItem.addActionListener(exitListener); popup.add(defaultItem); popup.add(skype); trayIcon = new TrayIcon(image, "Tray Demo", popup); ActionListener actionListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { trayIcon.displayMessage("Action Event", "An Action Event Has Been Peformed!", TrayIcon.MessageType.INFO); } }; trayIcon.setImageAutoSize(true); trayIcon.addActionListener(actionListener); trayIcon.addMouseListener(mouseListener); // Depending on which Mustang build you have, you may need to uncomment // out the following code to check for an AWTException when you add // an image to the system tray. // try { tray.add(trayIcon); // } catch (AWTException e) { // System.err.println("TrayIcon could not be added."); // } } catch (AWTException ex) { Logger.getLogger(SystemTrayTest.class.getName()).log(Level.SEVERE, null, ex); } } else { System.err.println("System tray is currently not supported."); } } /** * @param args the command line arguments */ public static void main(String[] args) { SystemTrayTest main = new SystemTrayTest(); } }
swordi
Partager