Comment est-ce que je remappe une clef sur le clavier en utilisant Java afin que je puisse donner à la clef une nouvelle signification?Comment remapper une touche du clavier en utilisant Java Swing?
Répondre
événements clés de capture:
java.awt.Toolkit.getDefaultToolkit().addAWTEventListener(myListener, AWTEvent.KEY_EVENT_MASK);
Simuler sur la touche:
java.awt.Robot.keyPress(myKeyCode);
ne comprennent pas vraiment le contexte de votre question. Mais en théorie, vous pouvez intercepter tous les KeyEvents et ensuite envoyer un KeyEvent différent en fonction de vos critères. Global Event Dispatching pourrait vous donner quelques idées.
Si je comprends bien la question, c'est comment définir explicitement le comportement d'une clé spécifique. Voici comment je fais cela pour implémenter des raccourcis clavier - j'espère que cela répond à votre question. Dans mon exemple ci-dessous, je crois que vous pouvez changer 'ceci' pour être le composant spécifique sur lequel vous souhaitez explicitement définir le comportement du clavier, en remplaçant son comportement par défaut. Je le fais habituellement dans le contexte d'un panneau ou d'un cadre.
private void addHotKey(KeyStroke keyStroke, String inputActionKey, Action listener) {
ActionMap actionMap = this.getActionMap();
InputMap inputMap = this.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
inputMap.put(keyStroke, inputActionKey);
actionMap.put(inputActionKey, listener);
}
L'argument inputActionKey est simplement une chaîne de clé arbitraire à utiliser pour mapper l'action. Un exemple d'appel de cette méthode pour écouter la clé DEL:
KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0);
Action listener = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
// delete something...
}
};
addHotKey(keyStroke, "MainWindowDEL", listener);
- 1. Comment remapper la touche "Menu contextuel" sous Mac OS X?
- 2. navigation du clavier Remap avec Jython/Swing
- 3. Comment créer une carte d'image en utilisant Java Swing?
- 4. Raccourci clavier large application - Java Swing
- 5. Clavier à l'écran Swing
- 6. Swing JButton arrondi en utilisant Java
- 7. texte Changement de touche du clavier « Retour »
- 8. Positionnement en java swing
- 9. Comment faire un bouton en profondeur dans un panneau Swing imbriqué obtenir le "focus du clavier"?
- 10. clés de détection de direction du clavier en utilisant keyPressed
- 11. Comment identifier les touches du clavier en utilisant C#
- 12. JTable utilisant Swing
- 13. Comment obtenir les valeurs de touche de pression du clavier dans une application VB.NET 2005?
- 14. En appuyant sur une touche dans C#
- 15. Equivalent du pack de Swing en C#
- 16. Désactiver le clavier <enter> touche
- 17. GoogleEarth dans Java Swing
- 18. Java Swing Problème
- 19. Modification de la langue d'entrée du clavier en Java
- 20. Fenêtre Swing Java corrompue
- 21. PropertyGrid dans Java Swing
- 22. Java Swing JTree Expansion
- 23. comment arrêter l'événement de pression de touche dans le clavier
- 24. Test du 'Ctrl' du clavier en C#
- 25. comment régler le texte de jtable dans java swing en utilisant eclipse
- 26. Java Swing Table taille
- 27. Comment remapper les propriétés dans LINQ?
- 28. Comment faire une colonne dans JTable Invisible pour Swing Java
- 29. Java: Comment stylisez-vous les composants Swing?
- 30. Comment envoyer les codes de balayage du clavier manuellement?
Est-ce que cette option est utilisée uniquement dans votre programme? Comme dans les jeux (modifier les contrôles). Ou voulez-vous dire l'ensemble de la configuration du clavier? –
@MartijnCourteaux je cherche quelque chose à remapper ma clé de pageup à (ctrl + win + left) et pagedown à (crl + win + right) –
@KoenVanLooveren: Sur OS X, recherche de Karabiner. Pour d'autres plateformes, je suppose que des applications similaires existeront. –