2013-07-28 8 views
0

Je n'ai pas encore totalement compris certains concepts Java comme Listeners and Adapters, etc., et récemment je cherchais un moyen d'exécuter du code quand j'appuie sur enter alors qu'un JTextField a le focus et que j'ai trouvé ce code :A propos d'ActionPerformed et ActionEvent

JTextField.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     System.out.println("Enter pressed"); 
    } 
} 
); 

Ce code fonctionne très bien, mais je n'ai pas la moindre idée de comment le JTextField sait que je veux que le code à exécuter lorsque j'appuie sur la touche Entrée. Je devine que le JTextField a défini dans son code pour quels événements (comme Enter press) il va "répondre". J'espère que quelqu'un peut me aider à clarifier ce doute

+0

Regardez ici. https://en.wikibooks.org/wiki/Java_Programming/Event_Handling. Ce site vous donnera des informations de base sur la gestion des événements. – Mac

Répondre

2
  • ENTER key est mis en œuvre en tant que KeyBindings (accepte le terrain) pour JFormattedTextField, JTextField, JPasswordField
  • cette notifiants ont généré un événement en invoquant ActionListener (notifiants, méthodes API), pour suis JComponent s vous pouvez ecouter cet evenement par ajouter ActionListener
  • un autre JComponent peut même tirer de ENTER key à deux ou plus AWT/Swing Listeners, par exemple pour JComboBox de ActionListener et ItemListener
  • la plupart des swing JComponent s a mis en œuvre les communes/standard Accélérateur d'similair, comme dans MS Windows (MsOffice etc ...), ces événements clés sont mises en œuvre KeyBindings Swing
  • vous pouvez pour ajouter, modifier, bloquer les événements implémentés dans l'API. ou ajouter, définir propres raccourcis clavier à l'aide KeyBindings
  • son sur les bonnes practicies à utiliser KeyBindings au lieu de KeyListener (groupe de Q & A ici)
+1

voir [toutes les liaisons de touches] (http://tips4java.wordpress.com/2008/10/10/key-bindings/) par @camickr – mKorbel

0

En java GUIs écoutes (appelé Listener) aux actions de l'utilisateur. Il y a beaucoup d'écouteurs qui peuvent être utilisés pour une interface graphique spécifique. Par exemple, Textfield écoute les événements actio. ActionEvent déclenche une interface graphique qui écoute cet événement. Ainsi, chaque fois que vous avez cliqué sur une interface graphique ciblée, elle répond.