2015-07-04 145 views
2

我正在學習Java,並且真的想更深入地瞭解ActionEvent e參數意味着什麼。當我編碼時,我不只是想吐出可行的線條,但我不明白。我想在使用它們之前對概念有充分的瞭解。ActionEvent e是什麼意思?

那麼具體是什麼要求,這兩個部分(ActionEvent和e)是什麼意思?

class ButtonListener implements ActionListener{ 
     @Override 
     public void actionPerformed(ActionEvent e){ 
    } 
} 

謝謝。

+0

e執行這是一種ActionEvent的,它可以讓你訪問ActionEvent的屬性。 actionPerformed方法在關聯對象生成一個動作時調用,ActionEvent攜帶屬性,如果該動作幫助您確定應該做什麼 – MadProgrammer

+0

簡而言之..ActionEvent是類或事件,當事件觸發時獲取完整引用。以便您可以獲取有關觸發事件的完整信息並使用它的功能,屬性和所有其他信息。 –

回答

4

ActionEvent是一類,e是該類的一個實例。您可以使用e來調用它的方法/屬性,發現這裏

http://docs.oracle.com/javase/7/docs/api/java/awt/event/ActionEvent.html

ActionEvent僅僅是一個類型,它會通知你e是什麼類型的對象。順便說一下,你可以改變e爲你喜歡的任何東西,例如。 eventobject

ActionEvent eventActionEvent objectActionEvent anyVariableName等(記住,不要與Object混淆,它與小寫的 「o」 的對象)...

內。然後actionPerformed()你可以調用的東西像event.doSomething();

+0

因此我可以將「e」更改爲我想要的任何名稱? – MooseMan55

+1

是的,它只是一個參考名稱,一個變量。它實例化類ActionEvent,所以你不能改變ActionEvent。 「e」只在actionPerformed()中有意義。 –

+0

這是一個開始學習Java的相當高級的話題。如果不先學習面向對象編程的基礎知識,我就不會馬上開始學習事件驅動編程,我會專注於主要方法中的更簡單的示例,瞭解面向對象的程序是什麼,以及爲什麼使用它。之後,嘗試研究觀察者設計模式,那麼你會更好地瞭解事件驅動的編程。 – kiwicomb123

0

ActionEvent是您的監聽器捕獲的「事件」,由調度員發送。用通俗的話來說,這意味着某個線程已經決定了你的行爲(即點擊一個按鈕等)已經引發了一個動作並通知系統。你的聽衆會聽到這個,並將其作爲參數eThis可能有助於更多地瞭解該行爲是什麼/爲什麼;並且,檢查事件調度線程(EDT)可能會有所幫助。

0

這應該幫助你: http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html

基本上,ButtonListener是你的ActionListener實現。 您將使用它像

someButton1.addActionListener(new ButtonListener()); 
someButton2.addActionListener(new ButtonListener()); 

它將監聽上的按鈕「someButton1」和「任何行動事件someButton2'.But我們可能要處理的兩個按鈕點擊不同的方式。那是什麼時候使用ActionEvent。

裏面的方法,我們可以通過以下

​​