7
votes

Désactiver la barre d'espace déclencheur Cliquez pour JButton

JButtons Envisagez d'appuyer sur la barre d'espace pour être la même que de cliquer sur le JButton (en supposant que le JButton a le focus, que je suppose ici). Existe-t-il un moyen d'éteindre ce comportement afin qu'ils ignorent en appuyant sur la barre d'espace?

Aussi, plus généralement, y a-t-il une technique pour le faire avec abstractbuttons ?


1 commentaires

Je pensais que ta question était sur les boutons pluriels. Ce n'est pas une très bonne interface utilisateur d'avoir des boutons fonctionnant avec la barre d'espace et d'autres non. Alors, pourquoi voudriez-vous changer les boutons une à la fois?


4 Réponses :


2
votes

Vous pouvez le désactiver en faisant

InputMap im = (InputMap)UIManager.get("Button.focusInputMap");
im.put(KeyStroke.getKeyStroke("pressed SPACE"), "none");
im.put(KeyStroke.getKeyStroke("released SPACE"), "none");


0 commentaires

3
votes

Le lien indiqué par Aioobe montre comment le faire pour un bouton individuel. Si vous voulez faire cela pour tous les jbutton, vous feriez:

InputMap im = (InputMap)UIManager.get("Button.focusInputMap");
im.put(KeyStroke.getKeyStroke("pressed SPACE"), "none");
im.put(KeyStroke.getKeyStroke("released SPACE"), "none");


0 commentaires

0
votes

La barre d'espace sur le porte-clés peut activer le dernier élément ciblé. Pour défocuser l'élément Essayez:

${element}.blur()


0 commentaires

0
votes

Utilisation:

bouton.setfocusable (false)

De cette façon, le bouton ne peut être cliqué que sur la souris et non la barre d'espace.


0 commentaires