63 votes

Comment mettre une application Java dans la barre d'état système ?

J'ai un petit panneau de contrôle, juste une petite application que j'ai faite. Je voudrais minimiser/afficher le panneau de contrôle en haut/bas avec les systémes, ainsi que l'autonomie de la batterie, la date, les réseaux, etc.

Quelqu'un peut-il me donner un indice, un lien vers un tutoriel ou quelque chose à lire ?

87voto

Michael Myers Points 82361

À partir de Java 6, cette fonction est prise en charge par la fonction SystemTray et TrayIcon classes. SystemTray a un exemple assez complet dans ses Javadocs :

TrayIcon trayIcon = null;
if (SystemTray.isSupported()) {
    // get the SystemTray instance
    SystemTray tray = SystemTray.getSystemTray();
    // load an image
    Image image = Toolkit.getDefaultToolkit.getImage(...);
    // create a action listener to listen for default action executed on the tray icon
    ActionListener listener = new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            // execute default action of the application
            // ...
        }
    };
    // create a popup menu
    PopupMenu popup = new PopupMenu();
    // create menu item for the default action
    MenuItem defaultItem = new MenuItem(...);
    defaultItem.addActionListener(listener);
    popup.add(defaultItem);
    /// ... add other items
    // construct a TrayIcon
    trayIcon = new TrayIcon(image, "Tray Demo", popup);
    // set the TrayIcon properties
    trayIcon.addActionListener(listener);
    // ...
    // add the tray image
    try {
        tray.add(trayIcon);
    } catch (AWTException e) {
        System.err.println(e);
    }
    // ...
} else {
    // disable tray option in your application or
    // perform other actions
    ...
}
// ...
// some time later
// the application state has changed - update the image
if (trayIcon != null) {
    trayIcon.setImage(updatedImage);
}
// ...

Vous pouvez également consulter cet article ou ce conseil technique .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X