Maison  >  Article  >  Java  >  Comment puis-je attribuer des raccourcis clavier aux boutons en Java ?

Comment puis-je attribuer des raccourcis clavier aux boutons en Java ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-24 04:09:02940parcourir

How Can I Assign Keyboard Shortcuts to Buttons in Java?

Comment lier une touche de raccourci à un JButton en Java

En Java, vous pouvez attribuer des touches de raccourci aux boutons (par exemple, en cliquant sur le bouton La touche "Supprimer" déclenche un clic sur un bouton) en implémentant une action, en la liant à une frappe, puis en associant l'action au bouton.

Pour ce faire, suivez ces étapes :

  1. Créez une classe Action qui définit le comportement lorsque la touche de raccourci est enfoncée, généralement en utilisant une classe interne anonyme.
  2. Enregistrez l'action avec le bouton en utilisant un appel à bouton.addActionListener().
  3. Mappez la touche de raccourci à l'action à l'aide d'InputMap et d'ActionMap comme indiqué :

    • getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) récupère la carte d'entrée pour les événements de clavier lorsque le panneau de boutons a le focus.
    • put(KeyStroke, Object) associe la touche souhaitée à l'action.
    • getActionMap().put(Object, Action) associe l'action à la clé mappée.

Voici un exemple d'extrait de code qui implémente ces étapes :

<code class="java">public class CalculatorPanel extends JPanel {
    // ... (code removed for brevity)

    for (int i = 0; i < 10; i++) {
        String text = String.valueOf(i);
        JButton button = new JButton(text);
        // ... (code removed for brevity)

        InputMap inputMap = buttonPanel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
        inputMap.put(KeyStroke.getKeyStroke(text), text);
        inputMap.put(KeyStroke.getKeyStroke("NUMPAD" + text), text);
        buttonPanel.getActionMap().put(text, numberAction);
    }
}</code>

Ce code définit une action qui insère la valeur de frappe dans un champ de texte lorsqu'elle est déclenchée. Lorsque les boutons sont créés, ils sont mappés à leurs touches respectives sur les pavés principal et numérique. De ce fait, un appui sur les touches correspondantes (ex : « 1 » ou « NUMPAD 1 ») active le bouton associé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn