Dans mon swing programme, j'ai un component swing jtextfield et un JButton. Je voudrais, une fois que l'utilisateur appuie sur la touche "enter", l'actionListener de la JButton s'exécute. Comment puis-je faire?
Merci à l'avance.
source d'informationauteur Connor
JRootPane a une méthode setDefaultButton(JButton bouton) qui permettra de faire ce que vous voulez. Si votre application est une JFrame, il met en œuvre la RootPaneContainer interface, et vous pouvez obtenir à la racine de volet en appelant getRootPane() sur la JFrame, et ensuite appeler setDefaultButton sur la racine volet a été renvoyée. La même technique fonctionne pour JApplet, JDialog, ou de toute autre classe qui implémente RootPaneContainer.
il y a un exemple ici
http://www.java2s.com/Code/Java/Swing-JFC/SwingDefaultButton.htm
c'est ce que vous avez besoin de: rootPane.setDefaultButton(bouton2);
Se débarrasser de ActionListeners. C'est le style ancien pour faire auditeurs. Diplômé de la classe de l'Action. Le truc, c'est de comprendre InputMaps et ActionMaps travail. C'est une caractéristique unique de Swing qui est vraiment très gentil:
http://download.oracle.com/javase/tutorial/uiswing/misc/keybinding.html
Voici comment vous le faites:
À l'aide de la WHEN_ANCESTOR_OF_FOCUSED_COMPONENT permet au comité de recevoir des événements de clavier à partir de l'un de ses enfants (c'est à dire les ancêtres). Donc, peu importe ce composant a le focus, tant que c'est à l'intérieur du panneau de la frappe de invoquera toute action enregistrés sous la rubrique "soumettre" dans le ActionMap.
Cela vous permet de réutiliser des Actions dans les menus, les boutons, ou les frappes de touches en les partageant.