0
我想創建一個WindowAdapter
的實例,並將其中的windowClosing
的方法放入其中,然後將temp發送到f.addWindowListener(temp)
這可以完成。如何創建或分配一個方法到臨時(WindowAdapter)?
Java不會讓我創建如下所示的WindowAdapter
的實例。
WindowAdapter temp = new WindowAdapter(); <-- Does not compile
這怎麼辦?
代碼:
public static void main(String args[]) {
setLookFeel();
JFrame f = new JFrame("Hello World Printer...");
WindowAdapter temp;
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
JButton printButton = new JButton("Print Hello World");
printButton.addActionListener(new HelloWorldPrinter());
f.add("Center", printButton);
f.pack();
f.setVisible(true);
}
這工作,但我怎麼能使用test()方法。
HelloWorldPrinter t = new HelloWorldPrinter() {
public void test() {
System.out.println("Test");
}
};
t.test(); <-- gives a compile error
這有效,但爲什麼這個工作看起來很奇怪,你可以用{和a}構造函數;這可以在任何類的任何構造函數上完成嗎? –
我建議你閱讀一些關於匿名類的內容:http://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html – kajacx
我真的不想使用匿名類。我真正想要弄清楚的是,什麼時候更好地製作一個接口的實例,而不是實現它。我知道有時候會出現這種情況,因此如何將界面的實例變成變量而不是變量,會有什麼好處。 –