2013-07-28 38 views
0

我還沒有完全理解一些Java概念,如聽衆和適配器等,最近我正在尋找一種方法來執行一些代碼時,當我按下輸入,而JTextField有焦點,我發現這個代碼:關於ActionPerformed和ActionEvent

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

此代碼工作正常,但我不知道該怎樣做JTextField的知道,我想,當我按下回車鍵執行的代碼線索。我猜JTextField已經在它的代碼中定義了很多事件(比如Enter按鈕),它會「回答」。我希望有人能幫助我澄清這個疑問

+0

看看這裏。 https://en.wikibooks.org/wiki/Java_Programming/Event_Handling。本網站將爲您提供有關事件處理的基本信息。 – Mac

回答

2
  • ENTER key(現場受理)被實現爲KeyBindingsJFormattedTextFieldJTextFieldJPasswordField
  • 此通知程序通過調用的ActionListener(通告程序,在API的方法)生成的事件,對於我JComponent是你能傾聽這一事件被添加ActionListener
  • 另一JComponent S能夠在燒成從ENTER key兩個或兩個以上AWT/Swing Listeners,如爲JComboBoxActionListenerItemListener
  • 大多數Swing JComponent s已實現的公共/標準accelators,similair在微軟Windows(MSOFFICE等),這些關鍵事件是在Swing實現爲KeyBindings
  • 你可以添加,更改,阻止在API中實現的這些事件。或添加,使用KeyBindings
  • 定義自己的快捷鍵它對好practicies使用KeyBindings,而不是KeyListener(一堆這裏Q & A的)
+1

通過@camickr查看[所有關鍵綁定](http://tips4java.wordpress.com/2008/10/10/key-bindings/) – mKorbel

0

在java中的GUI聽後(稱爲監聽器)從用戶操作。有很多可以用於特定GUI的監聽器。例如用於Textfield的監聽actio事件。 ActionEvent觸發一個監聽該事件的GUI,所以無論何時單擊一個專注的GUI,它都會作出響應。