Ajouter une trayicon avec J2SE6

Les "trayicons" sont les icones que l'on a à coté de l'heure sous la majorité des systemes d'exploitation (dont Windows). On les retrouve aussi sous la dénomination d'icones systemes". Nous allons voir comment les créer en Java grâce à la derniere version du JDK: la version 1.6.
En effet, Sun a enfin ajouté cette fonctionnalité à notre langage fétiche :)
Pour que le programme suivant s'execute correctement, vous devez avoir l'image "logo.png" à la racine de votre projet (ou modifier le nom de l'image dans le programme!

 import java.awt.*;
import java.awt.event.*;

public class SystemTrayTest {

    TrayIcon trayIcon;

    public SystemTrayTest() {

        // Si le systeme d'exploitation supporte
        // les icones systemes
        if (SystemTray.isSupported()) {
            // On créé la "SystemTray"
            SystemTray tray = SystemTray.getSystemTray();

            // On lui ajoute l'image qui correspond à l'icone
            Image image = Toolkit.getDefaultToolkit().getImage("logo.png");

            // Ainsi qu'un menu "pop up" avec un menu "Quitter"
            PopupMenu popup = new PopupMenu();
            MenuItem defaultItem = new MenuItem("Quitter");

            defaultItem.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    System.exit(0); //On quitte
                }
            });

            popup.add(defaultItem);

            trayIcon = new TrayIcon(image, "cliquez ici!!", popup);

            trayIcon.setImageAutoSize(true);
            trayIcon.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    trayIcon.displayMessage("Merci",
                            "Merci de tester la trayicon !",
                            TrayIcon.MessageType.INFO);

                }

            });
            try {
                tray.add(trayIcon);
            } catch (AWTException e) {
                e.printStackTrace();
            }
        }
    }

    // On teste l'application
    public static void main(String[] args) {
        new SystemTrayTest();
    }
}

Laboratoire SUPINFO des technologies Sun
labo-sun@supinfo.com


Conditions d'utilisation et © Copyright SUPINFO International University
23, rue de Château Landon - 75010 PARIS - Tél : +33 (0) 153359700 Fax : +33 (0) 153359701
Respect de la vie privée