Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MANIPULER LA BARRE SYSTEME


Information sur la source

Catégorie :Api Classé sous : system, tray, systray, icone, systeme Niveau : Débutant Date de création : 26/02/2006 Vu : 15 729

Note :
8,75 / 10 - par 4 personnes
8,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
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

  • 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 {
  • // ...
  • }
  • }
  • }
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 ;-)
 

Commentaires et avis

signaler à un administrateur
Commentaire de gmi19oj19 le 27/02/2006 09:09:58

Je savais comment faire via l'API JDIC dont est extraite cette nouvelle fonctionnalité et je remarque qu'il n'y a pas de changement énorme dans le code.

Merci pour l'exemple :)

signaler à un administrateur
Commentaire de Twinuts le 27/02/2006 16:13:39 administrateur CS

Sympas l'exemple,
même si je ne veux pas installer java 6 pour le moment (donc pas de teste possible) ça reste plus simple à faire qu'en jni :)

signaler à un administrateur
Commentaire de neodante le 27/02/2006 18:47:53 administrateur CS

Je vais mettre d'autres exemples de ce type, et en Java 6 il y en a beaucoup ;-)
++

signaler à un administrateur
Commentaire de lyesnet le 08/03/2006 11:18:01

bjr
j' ai teste votre exemple avec jdk1.6 mais ca marche pas.
A la compilation j'ai tout un rapprt d'erreurs qui me saute au yeux
please aide

signaler à un administrateur
Commentaire de neodante le 08/03/2006 11:44:54 administrateur CS

SI tu as téléchargé le JDK 6 Beta (pas les snapshots) il n'y a aucune raison que cela ne marche pas , c'est du standard.

Néanmoins, pourrais-tu au moins me donner le type de tes erreur ?

++

signaler à un administrateur
Commentaire de Stubbornman le 16/12/2006 19:12:09

Pour ma part, ca fonctionne très bien. Merci pour l'exemple.

signaler à un administrateur
Commentaire de hayeb967 le 16/06/2007 19:33:13

merci pour ce formation

signaler à un administrateur
Commentaire de docv266 le 22/08/2007 11:01:29

Merci, ça marche impec sauf que mon image est invible!
Ca peut être du à quoi?
Sinon c'est vraiment super...

signaler à un administrateur
Commentaire de cedalbi0 le 25/09/2007 11:30:50

docv266 : Tu dois placer une image "duke.gif" dans la racine du projet. J'avais la même erreur que toi (pas d'image dans la barre système) et là ça fonctionne à présent.

Merci pour l'exemple!

signaler à un administrateur
Commentaire de GillesWebmaster le 14/10/2007 18:59:11 10/10

tout simplement génial!!!

signaler à un administrateur
Commentaire de Nicolas___ le 09/06/2008 15:57:47

Le code source est vieux mais l'idée est toujours aussi sympathique :)

Merci

signaler à un administrateur
Commentaire de darthplagueis le 17/11/2008 20:29:30

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.

signaler à un administrateur
Commentaire de gouessej le 17/12/2008 13:36:02 5/10

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.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

réduire au system tray [ par balbinus ] Est-il possible en JAVA de réduire une application à une petite icône dans le system tray ?Si ce n'est pas possible en JAVA pur, y a-t-il des librairi System Tray Java 6 [ par JSR2K ] Bonjour,J'ai implemanté le code que l'on peut trouver ici  : http://www.javafr.com/codes/MANIPULER-BARRE-SYSTEME_36279.aspxdans mon programme constitu inconifier dans le System Tray [ par NickDejaPris ] Comment peut on mettre une fenetre dans le sytem Tray quand on l iconifie? svp While (1!=2) {System.out.println("Y' a comme un BUG .... je crois ??!!" free et jdbc [URGENT !!!] [ par kerlutinhoec ] bien le bonjour !Bon, moi, je suis emmerdé par jdbc.J'utilise le driver org.gjt.mm.mysql.Driver pour essayer de me co a une bdd type MySQL.Alors le pr free et jdbc [URGENT !!!] [ par kerlutinhoec ] bien le bonjour !Bon, moi, je suis emmerdé par jdbc.J'utilise le driver org.gjt.mm.mysql.Driver pour essayer de me co a une bdd type MySQL.Alors le pr Changer l'icone par defaut d'une JFrame [ par you2re ] salut comment changer l'icone par defaut d'une JFrame je parle de la tasse de cafe au dessus gauche de la JFrameMerci pour votre aide icone d'un fichier avec FileSystemView [ par Dobel ] BonjourJ'utilise massivement FileSystemView.getFileSystemView().getSystemIcon(monFichier) dans une bête boucle for pour obtnir les icones associées au Icone dans les barres d'outils [ par doria123 ] Salut all. Alors voilà :J'ai une JToolBar composées de plusieurs JToolbar dans une JInternalFrame.Lorsque je sépare une des barre de la fenêtre, l'ico envoyer des mails avec pièces jointes [ par pipin ] J'essaie d'envoyer des pièces jointes dans un mail. Ca marche lorsque je teste sous forte4java mais ça plante à partir d'un jar exécutable. Il me renv lancer au demmarge du systeme [ par pms77 ] est-ce quelqu'un sait comment faire pour lancer un programme au demmarage du systeme. en fait est-ce qu'il faut mettre dans un rep particulier pour li


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.