begin process at 2008 05 16 07:31:37
1 173 219 membres
61 nouveaux aujourd'hui
13 970 membres club

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 !

MANIPULATION D'UNE BARRE SYSTÈME AVEC JAVA 6


Information sur le tutorial

Catégorie :Api Date de création : 15/03/2006 11:38:48 Vu : 6 809 fois

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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


Description

Court tutorial qui présente une petite introduction de la gestion de la barre système en Java.

Tutorial

Suite au post d'une source sur le site : http://www.javafr.com/codes/MANIPULER-BARRE-SYSTEME_36279.aspx je me suis dit que quelques explications permettraient d'éclaircir les choses !

Manipuler la barre système

Une des nouvelles fonctionnalités très intéressantes decette version de Java est l’intégration en standard de la gestion de la barresystème. Auparavant, vous auriez utilisé une des librairies externes :SysTray (http://systray.sourceforge.net/)ou JTray (http://www.javaapis.com/jtray/).Aujourd’hui, avec la disponibilité de cette fonctionnalité dans le JDK 6, Sunfrappe un grand coup pour intégrer vos applications dans le systèmed’exploitation hôte.

La classe principale que vous utiliserez pour avoir accès àla barre système est java.awt.SytemTray.Il n’existe qu’une seule instance de SystemTraydans une application Java, et pour obtenir celle-ci vous devez utiliser laméthode statique SystemTray.getSystemTray().

Néanmoins, Java se voulant portable sur les différentssystèmes d’exploitation du marché, il se peut que cette fonctionnalité ne soitpas disponible sur le système cible qui exécutera votre application. Parconséquent, il est judicieux de vérifier au préalable le support de la barresystème à l’aide de la méthode statique SystemTray.isSupported().Si vous utilisez néanmoins cette fonctionnalité alors que celle-ci n’est pasdisponible, vous risquez de devoir intercepter une exception java.lang.UnsupportedOperationException.

Une fois que vous avez récupéré votre instance du SystemTray, vous allezpouvoir ajouter des objets TrayIcon,qui représente tout simplement une icône dans la barre système. Vouspourrez ajouter/supprimer plusieurs de ces objets dans votre application.Néanmoins, l’ajout d’un objet TrayIconà SystemTray doitgérer l’exception AWTException.Celle-ci ne sera lancée que si vous ne pouvez pas ajouter le TrayIcon, par exemple sivotre bureau ne possède pas de barre système !

Le code suivant illustre cette nouvelle fonctionnalité :

final TrayIcontrayIcon;

if(SystemTray.isSupported()) {

 

    SystemTray tray =SystemTray.getSystemTray();

    Image image = Toolkit.getDefaultToolkit().getImage("duke.gif");

           

    PopupMenu popup = newPopupMenu();

   

    MenuItem defaultItem = new MenuItem("Quitter");

    defaultItem.addActionListener(new ActionListener() {

        public voidactionPerformed(ActionEvent e) {

            System.exit(0);

        }

    });

    popup.add(defaultItem);

 

    trayIcon = newTrayIcon(image, "Java 6 Demo !", popup);

    ActionListener actionListener = new ActionListener() {

        public voidactionPerformed(ActionEvent e) {

            trayIcon.displayMessage("Java 6 newfeature !",

                "Le System Tray en action!",

                TrayIcon.MessageType.INFO);

        }

    };

    trayIcon.setImageAutoSize(true);

    trayIcon.addActionListener(actionListener);

   

    try {

        tray.add(trayIcon);

    } catch(AWTException e) {

        e.printStackTrace();

    }

} else {

...

}

Comme vous pouvez le constater dans l’exemple, un objetTrayIcon est beaucoup plus qu’une simple icône dans la barre système. Celle-cipeut se transformer en message popup et en menu AWT (la limite à ce type demenu est donc celui des menus AWT, ce qui se traduit par une liberté de choixdans la réalisation de menus complexes).

Un objet TrayIconreçoit les évènements de la souris, celui-ci peut donc être associé avec des listeners tel que actionListener, mouseListener et mouseMotionListener. Celadevrait vous donner la possibilité de réaliser des menus très interactifs.Néanmoins, certains évènements sont directement consommés par l’objet, parexemple, le double clic avec le bouton droit de la souris affiche le menuassocié lors de la construction de l’objet TrayIcon.

Une fois l’objet TrayIconcréé, vous aurez tout le loisir de changer ses propriétés pendant l’exécutionde votre application. C’est le cas du menu popup, de l’image ou encore dumessage tooltip qui s’affiche lorsque vous passez la souris dessus.

Bon courage !

15 mars 2006 11:40:35 :
Corrections mise en forme
  • signaler à un administrateur
    Commentaire de rom1v le 26/10/2006 18:04:50

    "final TrayIcontrayIcon;" <-- Y'a pas un problème, là? :)

    Sinon, pour le chargement d'image, il faut attendre que l'image soit finie de charger... Le plus simple est d'utiliser ImageIO...

  • signaler à un administrateur
    Commentaire de neodante le 26/10/2006 18:30:32 administrateur CS

    Si effectivement, enfin le code source est quand à lui juste ... je corrigerais à l'occasion ! ;-)

    ++

Ajouter un commentaire

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Boutique

Boutique de goodies CodeS-SourceS