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? P>
Aussi, plus généralement, y a-t-il une technique pour le faire avec abstractbuttons code>? p>
4 Réponses :
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");
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");
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()
Utilisation: p>
De cette façon, le bouton ne peut être cliqué que sur la souris et non la barre d'espace. P> bouton.setfocusable (false) code> p>
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?