我有以下代码,在同一个java文件中。Java执行流 - 重写的方法首先比构造函数执行
import javax.swing.SwingUtilities;
import java.io.File;
public class MainClass2{
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable(){
public void run() {
javax.swing.JFileChooser jfc = new MyFileChooser();
File file = jfc.getSelectedFile();
}
});
}
}
class MyFileChooser extends javax.swing.JFileChooser{
public MyFileChooser(){
System.out.println("constructor call");
}
@Override
public java.io.File getSelectedFile(){
System.out.println("call to getSelectedFile");
return null;
}
}
当我运行它,输出给了我
call to getSelectedFile
constructor call
call to getSelectedFile
不应该输出是
constructor call
call to getSelectedFile
我用java 5.
哪里是你的电话到getSelectedFile? – 2013-04-04 07:36:19
我的不好,实际上在我的原始代码中,即时通讯调用MyFileChooser实例化后的常用方式。但正如你所看到的那样,即使我没有对'getSelectedFile'进行明确的调用。我会更新我的代码。 – Bnrdo 2013-04-04 07:41:52
你永远不需要调用'getSelectedFile',这是在你选择文件时调用'JFileChooser' – 2013-04-04 07:45:09