在我的计算机上,这段代码只会显示一次JFileChooser而不是多次。 (我在Mac上)
我需要能够多次显示对话框。
public class FileManager {
public static void main(String args[]) {
showDirectoryDialog();
System.out.println("BLOCKING");
showDirectoryDialog();
System.out.println("BLOCKING");
}
public static File showDirectoryDialog() {
System.out.println("Creating dialog");
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int returnVal = chooser.showOpenDialog(null);
System.out.println("Dialog done");
if (returnVal == JFileChooser.APPROVE_OPTION) {
File f = chooser.getSelectedFile();
return f;
}
return null;
}
}
编辑: 如果我创建一个JFileChooser的静态实例并将其持久化,这确实有效。
有谁知道为什么会出现这种行为?
EDIT2: 我使用的是OSX 10.9.4 我检查确保第二个对话框不在任何其他程序的后面。 (除非他们把它隐藏在桌面后面lol)