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 :

Fermer frame modale par action souris


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Avril 2005
    Messages : 277
    Par défaut Fermer frame modale par action souris
    Bonjour,

    Ma question est des plus simples à comprendre ...

    J'ai fait une classe qui étends JDialog, afin d'avoir une fenêtre modale qui attends un clic de l'utilisateur ...

    Je souhaiterais que si l'utilisateur clic en dehors de cette fenetre, celle-ci soit fermée ...

    J'ai essayé le FocusLost(), mais avec une Frame modale, le focuslost se fait que si on clique sur une AUTRE application que celle ou l'on est ...

    J'ai essayé un mouseListener, sur le MouseClicked si les coordonnées du click étaient en dehors de la zone de la fenetre ... Mais Avec une fenêtre modale, le clic n'a pas l'air d'être pris en compte si il est pas DANS la fenêtre ...

    Et j'ai besoin d'une fenêtre modale car il me faut absolument attendre l'action de l'utilisateur ...

    Une idée SVP ?

    Merci ^^

  2. #2
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Bah tout simplement, trouves un autre moyen de fermer ta fenetre : un bouton que l'utilisateur doit appuyer pour fermer cette fenetre modal. Il ne sera dépayser, c'est une action très courante, et je me demande serieusement pourquoi tu veux fermer une fenetre lors de l'appuie de la souris hors de la zone du programme. Un bouton avec un libellé "Fermer" est souvent suffisant.

    Sinon, tu as l'interface WindowListener
    et notamment la méthode windowDeactivated qui semble convenir à ce que tu veux :
    Invoked when a Window is no longer the active Window.
    Bonne chance.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Avril 2005
    Messages : 277
    Par défaut
    Pour le bouton pour fermer la fenêtre, il y en a déjà un ... Mais je souhaite un comportement supplémentaire !

    Pour le windowDeactivated ca ne marche pas car il est, je pense, lié au focus de la fenêtre modale ... Que ne peux pas perdre le focus ...

    En trifouillant j'ai pu avoir un résultat avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setModalityType( Dialog.ModalityType.DOCUMENT_MODAL );
    Mais la fenetre flash un coup en haut a gauche de l'écran avant de disparaitre ... Je sais pas comment faire la ...

    D'autres idées meilleures que la mienne ?

Discussions similaires

  1. Frame et Page: fermer une page par le code (C#)
    Par waspy59 dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 24/03/2011, 22h48
  2. Fermer BDD access par le code
    Par elendila dans le forum Access
    Réponses: 7
    Dernier message: 22/08/2006, 15h31
  3. [J2SE] selection dans jList par click souris
    Par rupteur dans le forum Composants
    Réponses: 6
    Dernier message: 01/12/2005, 12h36
  4. Couleur du pixel pointé par la sourie
    Par algerian dans le forum Windows
    Réponses: 4
    Dernier message: 16/08/2005, 18h22
  5. Comment fermer une fenêtre quand la souris et clavier sont inactifs ?
    Par Goldenkiller dans le forum Composants VCL
    Réponses: 7
    Dernier message: 06/12/2004, 22h09

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