Manipuler la barre systeme

Soyez le premier à donner votre avis sur cette source.

Snippet vu 23 272 fois - Téléchargée 28 fois

Contenu du snippet

Il existe beaucoup de librairies externes qui vous permettent de jouer avec la barre système. Vous savez la barre qui affiche l'heure et de petites icones lorsqu'une application se rétrécie par exemple. Ici le code présentée n'est compatible qu'avec le JDK 6 (vous pouvez obtenir le SDK de la beta à cette adresse : http://java.sun.com/javase/6/) et représente donc l'utilisation standard de la feature du system tray dans Java.

Remarque : JAVA 6 obligatoire ! Version six comme le chiffre 6!

Source / Exemple :


import java.awt.AWTException;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Demo1 {

	public static void main(String[] args) {
		final TrayIcon trayIcon; // Notre icone dans la barre système
		
		// On vérifie que le support de la feature du SystemTray est compatible avec l'OS hote
		if (SystemTray.isSupported()) {

		    SystemTray tray = SystemTray.getSystemTray();
		    Image image = Toolkit.getDefaultToolkit().getImage("duke.gif"); // On récupère l'image qui nous servira d'icone
		            
		    PopupMenu popup = new PopupMenu(); // Notre menu (clic droit sur l'icone systray)
		    
		    MenuItem defaultItem = new MenuItem("Quitter");
		    defaultItem.addActionListener(new ActionListener() {
		        public void actionPerformed(ActionEvent e) {
		            System.exit(0);
		        }
		    });
		    popup.add(defaultItem);

		    trayIcon = new TrayIcon(image, "Java 6 Demo !", popup); // Création de l'icone systray

		    ActionListener actionListener = new ActionListener() {
		        public void actionPerformed(ActionEvent e) {
		            trayIcon.displayMessage("Java 6 new feature !", 
		                "Le System Tray en action !",
		                TrayIcon.MessageType.INFO);
		        }
		    };
		    trayIcon.setImageAutoSize(true);
		    trayIcon.addActionListener(actionListener);
		    
		    try {
		        tray.add(trayIcon);
		    } catch (AWTException e) {
		        e.printStackTrace();
		    }

		} else {
			// ...
		}
	}
}

Conclusion :


N'oubliez pas d'installer le JDK 6 avant d'exécuter ce programme ;-)

A voir également

Ajouter un commentaire

Commentaires

aminemmm
Messages postés
2
Date d'inscription
dimanche 7 décembre 2008
Statut
Membre
Dernière intervention
17 septembre 2009
-
Supeeeeeeerb
Utilisateur anonyme -
C'est juste un copier-coller du code source commenté déjà disponible dans la documentation Java de la classe java.awt.SystemTray à peine complété.

Quant au problème de darthplagueis, si Netbeans a créé un paquetage dans lequel se trouve le fichier .java, il se peut qu'il faille adapter le chemin du fichier.
darthplagueis
Messages postés
1
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
17 novembre 2008
-
alors moi j'ai le même probleme que docv266, mon icone a bien sa place mais il demeure invisible. Pourtant le fichier gif que j'utilise est autant à la racine du projet que dans tous les sous-répertoires...
j'ai essayé de transformer le fichier en réduisant la résolution, le nb de couleurs, rien à faire :/

PS: je travaille sous netbeans 6.1
si qqn a une idée ce serait gentil merci.
Nicolas___
Messages postés
1039
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
2 -
Le code source est vieux mais l'idée est toujours aussi sympathique :)

Merci
GillesWebmaster
Messages postés
507
Date d'inscription
mercredi 30 juin 2004
Statut
Membre
Dernière intervention
29 juillet 2009
1 -
tout simplement génial!!!

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.