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
|
package sytemstray;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Main implements Runnable {
PopupMenu menu;
MenuItem actionMenu, exitMenu, paramMenu;
public static void main(String[] args) {
try {
// ceci est facultatif, c'est juste pour avoir le même skin que l'OS
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception ex) {
ex.printStackTrace();
}
EventQueue.invokeLater(new Main());
}
public void run() {
menu = new PopupMenu();
actionMenu = new MenuItem("Actions");
paramMenu = new MenuItem("Parameters");
exitMenu = new MenuItem("Exit");
// on vérifie si le Tray est supporté par l'OS
if(SystemTray.isSupported()){
//On ajoute les options au menu
menu.add(actionMenu);
menu.add(paramMenu);
menu.addSeparator();
menu.add(exitMenu);
// écouteur pour l'item "Action Menu"
actionMenu.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ev) {
JOptionPane.showMessageDialog(null, "Hello World !");
}
});
// écouteur pour l'item "Exit"
exitMenu.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
// on charge l'image qui sera utilisé comme icône
final Image icon = Toolkit.getDefaultToolkit().getImage("icon_tray.png");
final TrayIcon trayIcon = new TrayIcon(icon, "Mon application qui tue", menu);
try {
// on ajoute l'icône dans le tray
final SystemTray systemTray = SystemTray.getSystemTray();
systemTray.add(trayIcon);
// on affiche un info-bulle
trayIcon.displayMessage("Serge-Mail", "Vous avez 3 nouveaux messages.", TrayIcon.MessageType.INFO);
trayIcon.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {
menu.show(trayIcon,e.getX(),e.getY()); /*erreur ici */
}
}
);
} catch (AWTException ex) {
ex.printStackTrace();
}
} else {
System.err.println("Tray not supported");
}
} |
Partager