IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

SystemTray: icone dans la barre de notification


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut SystemTray: icone dans la barre de notification
    Bonjour,

    Lorsque je clique sur la croix pour fermer mon application, l'icone de mon application visible dans la barre des tâches est toujours présentes.

    Je souhaite qu'elle disparaisse quand je clique sur la croix de ma fenetre.

    Est-ce possible ?

    Voici ce que je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
     
    // Pour afficher une icone correspondant a l'appli 
    	   // dans la barre des taches de l'OS
    		if (SystemTray.isSupported()) {
    			SystemTray tray = SystemTray.getSystemTray();
    			Image image = Toolkit.getDefaultToolkit().getImage(imgbarnotif);
    			ActionListener exitListener = new ActionListener() {
    				public void actionPerformed(ActionEvent e) {
    					System.out.println("Exiting...");
    					System.exit(0);
    				}
    			};
    			PopupMenu popup = new PopupMenu();
    			MenuItem defaultItem = new MenuItem("Exit");
    			defaultItem.addActionListener(exitListener);
    			popup.add(defaultItem);
    			trayIcon = new TrayIcon(image, "Aide_Manager v.1.0",popup);
    			trayIcon.setImageAutoSize(true);
    			trayIcon.addActionListener(this);
     
    			try {
    				tray.add(trayIcon);
    			} catch (AWTException e) {
    				System.err.println("TrayIcon could not be added.");
    			}
     
    		} else {
    			System.out.println("SystemTray n'est pas supportee");
    		}
    	}
     
    	private Icon createImageIcon(String path) {
    		java.net.URL imgURL = Fenetre.class.getResource(path);
    		if (imgURL != null) {
    			return new ImageIcon(imgURL);
    		} else {
    			System.err.println("Couldn't find file: " + path);
    			return null;
    		}
    	}
    Dans mon écouteur, il faudrait ecouter sur la croix et puis dire:
    si on clique sur la croix alors enlever l'icone dans la barre de notification.

    je fais ça mais c'est pas bon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    @Override
    	public void actionPerformed(ActionEvent e) {
     
    		if(this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE) == e.getSource())
    tray.remove(trayIcon);
    ...
     
    }

  2. #2
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    J'ai trouvée !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    //Définition de l'écouteur à l'aide d'une classe interne anonyme
          fen.addWindowListener(new WindowAdapter(){
                   public void windowClosing(WindowEvent e){
                         int reponse = JOptionPane.showConfirmDialog(fen,
                                              "Voulez-vous quitter l'application",
                                              "Confirmation",
                                              JOptionPane.YES_NO_OPTION,
                                              JOptionPane.QUESTION_MESSAGE);
                         if (reponse==JOptionPane.YES_OPTION){
                        	 tray.remove(trayIcon);
                         }
                   }
          });

  3. #3
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    non en faite, j'ai pas trouvé !

    je suis dans ma classe Fenetre extends Jframe et je fais ceci pour que quand je clique sur la croix rouge cela enlève le trayicon de la barre de notification windows:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public void windowClosing(WindowEvent e){
            int reponse = JOptionPane.showConfirmDialog(this,"Voulez-vous quitter l'application","Confirmation",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
     
            if (reponse==JOptionPane.YES_OPTION){
           	 tray.remove(trayIcon);
            }
      }
    je dois mal mit prendre pour faire l'ecouteur de la croix rouge.

    Quelqu'un à-t-il une idée pour l'ecouteur de la croix rouge ?

  4. #4
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    J'ai enfin trouvée!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //Définition de l'écouteur à l'aide d'une classe interne anonyme
    	      addWindowListener(new WindowAdapter(){
    	          public void windowClosing(WindowEvent e){
    	              int reponse = JOptionPane.showConfirmDialog(null,"Voulez-vous quitter l'application",
                                     "Confirmation",
                                     JOptionPane.YES_NO_OPTION,
                                     JOptionPane.QUESTION_MESSAGE);
    	                                          
    	                     if (reponse==JOptionPane.YES_OPTION){
    	                    	 tray.remove(trayIcon);
    	                     }
    	               }
    	      });
    il faut enlever this et mettre null

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Icone WiFi dans la barre de notification
    Par fabrice91 dans le forum Windows 7
    Réponses: 3
    Dernier message: 09/09/2010, 16h34
  2. icone dans la barre des taches
    Par Tafid dans le forum Windows
    Réponses: 5
    Dernier message: 07/11/2005, 14h17
  3. Ajouter une icone dans la barre des titres (cme emule)
    Par Crisanar dans le forum Windows
    Réponses: 7
    Dernier message: 12/12/2004, 12h08
  4. Création de fenêtres sans icone dans la barre des taches
    Par bruce_will dans le forum Windows
    Réponses: 2
    Dernier message: 06/12/2004, 04h29
  5. Pb icone dans la barre des taches
    Par lbailler dans le forum Access
    Réponses: 4
    Dernier message: 12/11/2004, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo