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 :

Clique gauche sur un systray


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Par défaut Clique gauche sur un systray
    Bonjour tout le monde,

    Je dispose de la JDK6.0 et j'essaye de manipuler un Systray.
    Pour l'instant j'ai ajouté un PopupMenu au Systray et lorsque j'effectue un clique droit sur mon icône tout fonctionne correctement

    Maintenant je souhaite afficher un nouveau PopupMenu lors du clique gauche...
    J'arrive à intercepter le clique gauche mais impossible d'afficher le popup.

    L'idée pour afficher deux PopupMenu différents suivant le clique, serait d'ajouter soit l'un soit l'autre lors d'un clique (setPopupMenu()) puis de déclencher son affichage quand c'est nécessaire (quand ce n'est pas un clique droit).

    Si quelqun peut m'aider?
    Merci d'avance !

  2. #2
    Membre confirmé
    Avatar de fabou3377
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 182
    Par défaut
    Est-ce que quelqu'un a trouvé la parade à ce problème?

  3. #3
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut
    T as pas un évènement du style MouseEvent e sur lequel tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(e.getButton == e.BUTTON1){
     //clic droit
    }else{
    // clic gauche
    }

  4. #4
    Membre confirmé
    Avatar de fabou3377
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 182
    Par défaut
    Salut merci de ta réponse, j'arrive à capturer sans problème le clic sur le bouton gauche cependant je n'arrive pas à afficher le popup menu...
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    package sytemstray;
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
     
    public class Main implements Runnable {
     
         PopupMenu menu;
         MenuItem actionMenu, exitMenu, paramMenu;
     
     
        public static void main(String[] args) {
            try {
    // ceci est facultatif, c'est juste pour avoir le même skin que l'OS
                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            } catch (Exception ex) {
                ex.printStackTrace();
            }
     
            EventQueue.invokeLater(new Main());
        }
     
        public void run() {
     
            menu = new PopupMenu();
            actionMenu = new MenuItem("Actions");
            paramMenu = new MenuItem("Parameters");
            exitMenu = new MenuItem("Exit");
     
     
            // on vérifie si le Tray est supporté par l'OS
            if(SystemTray.isSupported()){
                //On ajoute les options au menu
                 menu.add(actionMenu);
                 menu.add(paramMenu);
                 menu.addSeparator();
                 menu.add(exitMenu);
     
     
                // écouteur pour l'item "Action Menu"
                actionMenu.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent ev) {
                        JOptionPane.showMessageDialog(null, "Hello World !");
                    }              
                });
     
     
                // écouteur pour l'item "Exit"
                exitMenu.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        System.exit(0);
                    }
                });
     
     
    // on charge l'image qui sera utilisé comme icône
                final Image icon = Toolkit.getDefaultToolkit().getImage("icon_tray.png");
     
                final TrayIcon trayIcon = new TrayIcon(icon, "Mon application qui tue", menu);       
     
                try {
    // on ajoute l'icône dans le tray
     
                    final SystemTray systemTray = SystemTray.getSystemTray();
     
                    systemTray.add(trayIcon);
     
     
     
    // on affiche un info-bulle
                    trayIcon.displayMessage("Serge-Mail", "Vous avez 3 nouveaux messages.", TrayIcon.MessageType.INFO);
     
     
     
                  trayIcon.addMouseListener(new MouseListener(){
                        public void mouseClicked(MouseEvent e) {
                           menu.show(trayIcon,e.getX(),e.getY());    /*erreur ici */
     
                        }                   
                  }     
                          );
     
     
                } catch (AWTException ex) {
                    ex.printStackTrace();
                }
     
            } else {
                System.err.println("Tray not supported");
            }
        }

  5. #5
    Membre confirmé
    Avatar de fabou3377
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 182
    Par défaut
    Est-ce que quelqu'un connaît la solution?? Merci pour votre aide...

  6. #6
    Membre confirmé
    Avatar de fabou3377
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 182
    Par défaut
    Je relance ce post...

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/08/2014, 17h17
  2. Clique gauche sur TrayIcon
    Par druzy dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 27/07/2013, 18h41
  3. (Menu contextuel) Clique droit sur images
    Par Furius dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 02/10/2005, 21h21
  4. decalage à gauche sur une tres grand tableau de char
    Par petitours dans le forum C++Builder
    Réponses: 10
    Dernier message: 14/07/2005, 23h40
  5. [MFC]Intercepter evenement sur icone systray
    Par 0xYg3n3 dans le forum MFC
    Réponses: 1
    Dernier message: 29/04/2005, 22h53

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