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 :

[JTabbedPane] capture des événements clavier


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 65
    Points
    65
    Par défaut [JTabbedPane] capture des événements clavier
    Salut,

    J'avais une fenêtre dotée d'un KeyListener qui marchait bien.
    Je rajoute un JTabbedPane dans cette fenêtre, impeccable, mais je n'arrive plus à intercepter les actions clavier...
    Que dois-je faire ?

    Pascal

  2. #2
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Je crois (mais j'ai peut-être tort) que c'est ton JTabbedPane qui a le focus, et plus ta Frame. Du coup, cela ne fonctionne plus. C'est désormais sur le JTabbedpane que tu devrait intercepter le clavier.

    Mais, ne te satisferais-tu des JMenuItem qui possède cette fonction intégré ? Cela est plus simple et concis.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 65
    Points
    65
    Par défaut
    JMenuItem ? A la place de quoi ? De JTabbedPane ? Mais ça fait pas du tout la même chose ?

    Non, moi je veux mon JTabbedPane, c'est trop joli, ça marche très bien sauf l'interception du clavier.

    Je veux bien intercepter sur le JTabbedpane, mais je vois pas trop comment faire. Je sais, c'est sans doute du b-a ba, mais l'interface c'est le quart du dixième de mes soucis, et en même temps il me faut qqchose de propre.

    Help encore ! Un exemple d'interception de clavier avec JTabbedPane ? Juste me mettre le pied à l'étrier que je passe pas des heures à merdoyer j'ai tellement d'autres trucs à faire !!!

  4. #4
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    l'interface c'est le quart du dixième de mes soucis
    Il semble que présentement, cela soit au contraire ton soucis

    JMenuItem ? A la place de quoi ? De JTabbedPane ? Mais ça fait pas du tout la même chose ?
    Effectivement, aussi un JMenuItem, non pas pour remplacer ton JTabbedPane, mais pour gérer ton interception clavier.

    Un exemple d'interception de clavier avec JTabbedPane
    J'ai pas d'exemple sous la main.
    Comment fait tu pour intercepter le clavier sur ta Frame ? Au lieu de relier le listener sur la Frame, tu le reli au JTabbedPane.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par visiwi Voir le message
    Il semble que présentement, cela soit au contraire ton soucis
    Te moques pas !

    Citation Envoyé par visiwi Voir le message
    Effectivement, aussi un JMenuItem, non pas pour remplacer ton JTabbedPane, mais pour gérer ton interception clavier.
    Ben, justement, j'utilise JMenuItem. Actuellement j'ai :
    - un JFrame avec un KeyListener,
    - qui contient un GridLayout 3x3,
    - qui contient 9 org.jfree.chart.ChartPanel, chacun doté d'un JMenuItem.
    Jusque là tout va bien sauf que l'utilisateur n'a accès qu'à 9 charts.

    J'introduis donc un JTabbedPane entre le JFrame et le GridLayout, mais je n'ai plus accès au clavier, comme tu dis, c'est le JTabbedPane qui doit intercepter pour son compte.

    Tu dis que je peux utiliser la présence des JMenuItem pour intercepter le clavier ? Explique un peu.

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Utilise un AWTEventListener

  7. #7
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Tu dis que je peux utiliser la présence des JMenuItem pour intercepter le clavier ? Explique un peu.
    Si ton but est d'intercepter toutes les frappes clavier a la manière d'un keylogger alors non, c'est pas fait pour ça. Mais tu peut associer une touche clavier a chaque JMenuItem.

    Par setAcelerator :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.SHIFT_MASK));
    Utilise un AWTEventListener
    Ou un AWTEventListener pour intercepter tous les frappes clavier n'importe où dans ton appli (comme un keylogger), mais ça se déclenche partout. Faut donc pas mettre des traitement trop long dans cet évènement, sinon ça ralenti considérablement ton appli.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par visiwi Voir le message
    Si ton but est d'intercepter toutes les frappes clavier a la manière d'un keylogger alors non, c'est pas fait pour ça. Mais tu peut associer une touche clavier a chaque JMenuItem.

    Par setAcelerator :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.SHIFT_MASK));
    Mmmmm, mes menus n'étaient pas faits pour ça mais il faut y réfléchir.

    Citation Envoyé par visiwi
    Ou un AWTEventListener pour intercepter tous les frappes clavier n'importe où dans ton appli (comme un keylogger), mais ça se déclenche partout. Faut donc pas mettre des traitement trop long dans cet évènement, sinon ça ralenti considérablement ton appli.
    Bon, c'est AWTEventListener qu'il me faut : un truc qui se déclenche partout, car les événements en question se rapportent bien à la totalité de l'appli, pas à telle où telle partie de la fenêtre.

    Je me documente, j'essaye et je vous tiens au jus.

    Merci

    Pascal

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 65
    Points
    65
    Par défaut
    Bon, ok, AWTEventListener fonctionne impeccable et j'intercepte à nouveau les événement du clavier, merci à vous deux.

    Cependant --- et c'est pour cela que je clos pas le fil --- je ne suis pas tout à fait satisfait. Si j'avais tenu à rétablir le comportement antérieur, avec interception des événements au niveau de la fenêtre, comment aurait-il fallu s'y prendre ?

Discussions similaires

  1. Raffraichissement des événements claviers
    Par dfiad77pro dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 06/01/2009, 17h25
  2. Réponses: 2
    Dernier message: 17/02/2008, 09h42
  3. [CP] Des pistes pour capturer des évènements stylet
    Par guipom dans le forum Windows Mobile
    Réponses: 1
    Dernier message: 05/06/2007, 16h12
  4. [C#]capture des événements
    Par gorgonite dans le forum C#
    Réponses: 7
    Dernier message: 12/01/2007, 22h44
  5. [JEditorPane]Captures des touches claviers
    Par splend_f dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 17/05/2004, 14h57

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