2017-07-07 55 views
1
public void Message() { 
@Override 
public void actionPerformed(ActionEvent e) { 
    JOptionPane.showMessageDialog(null, "Hello it is working"); 
} 

} 

// Message()是類中的方法。我可以在主方法或任何方法中添加一個ActionListener()嗎?

+4

你不能聲明裏面的Java方法方法,讓你上面貼的代碼是無效的。 – Jesper

+0

爲了讓你的例子工作,你需要'實現ActionListener',否則你會得到一個編譯器錯誤 – MadProgrammer

+1

請解釋你想要做什麼,以及爲什麼你想要放* * ActionListener *裏面*任何方法*。 –

回答

0

所有方法都必須在一個類中分別聲明。簡而言之,方法是某個類的對象可以做的事情,而在另一種方法中定義它們是沒有意義的。所以在你的情況下,

public void Message(){ 

} 
@Override 
public void actionPerformed(ActionEvent e){ 
    JOptionPane.showMessageDialog(null, "Hello it is working"); 
} 

編輯:這篇文章值得一讀。我沒有關於lambda表達式的知識,但它可能是你正在尋找的東西:) Does Java support inner/local/sub methods?

0

在Java中,嵌套方法是不允許的!

爲了overrideactionPerformed方法,你需要implementActionListener接口。

0

不可以。我們不能在java中創建嵌套方法。 嘗試閱讀關於actionlisteners。 :)

0

由於Java 8方法可以使用lambdas嵌套。 java中的方法可以嵌套[...]嗎? 不,這不可能。

你可以得到最接近的事是:

class Name { 
    void methodOne() { 
     class InnerClass { 
      void methodTwo() { 
      } 
     } 
    } 
} 

也就是說,在一個方法定義的內部類中定義的第二種方法。

可以聲明內部類中的靜態方法,所以你不必調用新

相關問題