我想使用內部類的設置,但是我遇到了一些問題。這是代碼我試圖使用方法:使用內部類的問題(java)
public class GUI
{
class ButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
// do something
}
}
private static void someMethod()
{
JButton button = new JButton("Foo");
button.addActionListener(new ButtonHandler());
}
}
這是錯誤消息我得到(在eclipse):
No enclosing instance of type GUI is accessible. Must qualify the allocation with an enclosing instance of type GUI (e.g. x.new A() where x is an
instance of GUI).
請有人可以幫我嗎?
這是一個奇怪的例子。通常當你這樣做一個監聽器時,你希望它有權訪問外部類實例。而按鈕等組件必須存在於另一個組件中。使用靜態方法沒有多大意義。所以儘管每個人都在告訴你讓你的內部類是靜態的,你可能會遇到更大的問題。查看Oracle Swing教程,瞭解如何製作Swing GUI的示例。 –
可能有[Java的重複 - 沒有可以訪問Foo類型的封閉實例](http://stackoverflow.com/questions/9560600/java-no-enclosing-instance-of-type-foo-is-accessible) – fabian