Bonjour,
Je fixe le décor...
J'ai un JPanel avec une JTable(données d'une table clients SQL), un JTextField(filtre les données, le nom du client par exemple) et un JCheckBox(filtre les données, correspond à un booleen de la table clients).
Voici les comportements qui fonctionnent :
Focus la JTable, quand je tape un caractère, je rempli mon JTextField avec pour filtrer mes données et les caractères suivant sont ajoutés au JTextField (ESC pour vider, les touches curseurs pour repasser sur la JTable)...pas de soucis.
Clic sur le JCheckBox, les données sont filtrées...pas de soucis
...je voudrais ajouter un raccourci clavier(CTRL+O) sur ma JCheckBox
Pour cela j'ai fais ceci...
Mon problème est que quand je tape CTRL+O, l'action "obs" est executée mais le KeyTyped sur ma table aussi... et un espace est mis dans mon JTextField...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 InputMap inputMap = jScrollPaneTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_O, KeyEvent.CTRL_DOWN_MASK), "obs"); jScrollPaneTable.getActionMap().put("obs", new obs()); class obs extends AbstractAction { public void actionPerformed(ActionEvent e) { .................. } }
Comment puis-je "filtrer" tous les CTRL+???? du ma methode qui gerent les KeyTyped ?
Merci d'avance.
Partager