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

Agents de placement/Fenêtres Java Discussion :

TrayIcon => forcer une JFrame à être visible


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 37
    Par défaut TrayIcon => forcer une JFrame à être visible
    Bonjour,

    j'aimerais savoir si quelqu'un a déjà du faire ceci:
    j'utilise un TrayIcon pour quand je minimise ma fenêtre, je fais un dispose, et lorsque je click sur le trayicon j'aimerais que ma fenêtre revienne en premier plan. Mais je n'y arrive pas.

    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
     
    @Override
        protected void processWindowEvent(WindowEvent e) {
        	super.processWindowEvent(e);
        	if (e.getID() == WindowEvent.WINDOW_CLOSING) {
    		exit();
    	}
        	if(e.getID() == WindowEvent.WINDOW_ICONIFIED){
        		showTrayIcon();
        		dispose();
        	}
        }
    donc ça c'était pour cacher ma fenêtre en cours et afficher le trayicon.
    maintenant le code pour quand j'aimerais refaire venir ma fenêtre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    private void someMethod(){
            trayIcon.addActionListener(new ActionListener() {
               public void actionPerformed(ActionEvent e) {
                    trayIcon.displayMessage("blabla", "blablabla", TrayIcon.MessageType.INFO);
                    MyFrame.this.setVisible(true);
                    MyFrame.this.toFront();
                    hideTrayIcon();
                   }
               });
    }
    je suis sous windows, et donc l'actionPerformed de mon trayicon fait que effectivement la fenêtre est visible mais elle n'est pas au premier plan, il faut encore cliquer dessus dans la barre des tâches.
    une idée ?

    Merci.

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par tomy4ever
    Je suis sous windows, et donc l'actionPerformed de mon trayicon fait que effectivement la fenêtre est visible mais elle n'est pas au premier plan, il faut encore cliquer dessus dans la barre des tâches.
    une idée ?

    Merci.
    Tu ne pourras pas avoir un meilleur comporttement que celui de toFront(), cette méthode est liée au système et à un comportement différent en fonction de celui-ci. Sous windows, ta fenêtre ne vas pas venir devant les autres, mais va clignoter dans la barre des tâches.

    Si tu veut un meilleur comportement, je pense que tu seras obligé de passer par du code natif, mais j'en suis pas sûr...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 37
    Par défaut
    Citation Envoyé par wichtounet
    Tu ne pourras pas avoir un meilleur comporttement que celui de toFront(), cette méthode est liée au système et à un comportement différent en fonction de celui-ci. Sous windows, ta fenêtre ne vas pas venir devant les autres, mais va clignoter dans la barre des tâches.

    Si tu veut un meilleur comportement, je pense que tu seras obligé de passer par du code natif, mais j'en suis pas sûr...
    Hmm ouais en fait j'ai plutôt l'impression qu'il ignore complètement le "toFront()" car en fait je double click sur le trayicon et la fenêtre est sélectionnée dans la barre des tâches mais on dirait qu'il manque juste un truc pour qu'elle aie vraiment le focus, pourtant à paremment elle l'a car si je fait alt tab, sachant que j'ai un utilitaire qui me montre une liste ordonnée des éléments sur lesquels je peux switcher, il me place sur l'élément qui est juste après la fenêtre de mon apli, ce qui est le comportement normal.

  4. #4
    Membre chevronné Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Par défaut
    Ben là on va pas trouver.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 37
    Par défaut
    lol

  6. #6
    Membre éclairé Avatar de soad
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 520
    Par défaut
    si tu fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Maframe.setState(Frame.NORMAL);
    à la place de la méthode toFront();

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

Discussions similaires

  1. [Snow Leopard] Forcer des symboles à être visible
    Par pasqual dans le forum Objective-C
    Réponses: 8
    Dernier message: 16/12/2010, 16h35
  2. Comment être averti que la dimension d'un JPanel ou d'une JFrame a changé ?
    Par Pierre8r dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 26/10/2009, 10h52
  3. Forcer le focus sur une JFrame
    Par donnadieujulien dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 26/06/2008, 09h36
  4. Forcer une macro variable a être numérique
    Par stefsas dans le forum Macro
    Réponses: 2
    Dernier message: 20/06/2008, 15h43
  5. [C# .NET 2.0]Forcer une fenêtre à être cachée
    Par JoSii dans le forum Windows Forms
    Réponses: 1
    Dernier message: 17/09/2006, 14h47

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