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 :

Focus d'une fenêtre


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 200
    Points : 149
    Points
    149
    Par défaut Focus d'une fenêtre
    Bonjour à tous,

    Alors voilà, j'utilise le framework VLDocking (lien) reposant sur SWING.

    Mon problème est le suivant : lorsque je clique sur un composant dans une de mes vues dockable, cela ne donne pas le focus à ma vue pour autant.
    Si je souhaite que ma vue ait le focus, il faut que je clique sur la barre de titre.

    Comment faire pour que lorsque je clique n'importe lequel des composants de ma vue (JPanel, JButton, JTextField, etc.), cela donne le focus à la vue (un genre de fenêtre en somme) dans son ensemble ?

    Merci d'avance.

    Edit: Est-il possible qu'un composant un peu customisé (un truc qui ressemble un peu à du JFreeChart) consomme un évènement du genre clic souris et que ça ait pour conséquence de ne pas transmettre le focus correctement ?

  2. #2
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 200
    Points : 149
    Points
    149
    Par défaut Consommation d'un évènement
    Après avoir testé un peu plus, je n'ai pas le problème sur les autres vues.
    Donc je pense que si j' n'ai pas le focus c'est tout simplement parce qu'il y a un évènement qui est consommé alors qu'il ne devrait pas l'être !
    Ma question donc est la suivante : quels sont les différents moyens de consommer un évènement souris ? Est-que ce n'est QUE lors de l'appel à la méthode MouseEvent.consume() ? Où existe-t-il d'autres moyen ?

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 200
    Points : 149
    Points
    149
    Par défaut La solution...
    Bon et bien j'alimente tout seul le sujet mais je viens de trouver le problème.
    Mon composant en question hérite d'un JPanel. Le problème est qu'à priori lorsqu'on clique sur un JPanel, il ne récupère pas le focus (pourquoi, je n'en ai aucune idée), et du coup, il ne transmet pas le focus à son parent (enfin je présume).

    Du coup, comme mon Panel implémente un MouseListener, il suffisait d'y ajouter un petit requestFocusInWindow() dans la méthode mousePressed() et ainsi ma fenêtre récupère son focus.

    Si quelqu'un a des compléments d'information à ce sujet, sur comment le focus fonctionne pour un JPanel, je suis preneur.

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Bah, par défaut, un JPanel n'est pas focusable (seuls les éléments permettant l'interaction avec l'utilisateur le sont).

    Il suffit de faire ceci pour le rendre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myPanel.setFocusable(true);
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

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

Discussions similaires

  1. Perl/Tk Rétablir le Focus d'une fenêtre secondaire
    Par LiNuXaDDiKt dans le forum Langage
    Réponses: 5
    Dernier message: 07/12/2007, 01h23
  2. [2.0] Perte de focus d'une fenêtre
    Par mister3957 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 29/03/2007, 12h19
  3. Réponses: 8
    Dernier message: 29/08/2006, 10h22
  4. Réponses: 43
    Dernier message: 03/03/2006, 19h41
  5. Comment détecter la perte de focus d'une fenêtre
    Par Leviathan_72 dans le forum Windows
    Réponses: 5
    Dernier message: 31/12/2005, 00h22

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