从窗口中的按钮打开JFileChooser后,将打开“文件选择器”,然后关闭原始窗口。当用户使用文件选择器时,我希望保持原始窗口始终打开。
我的代码:
// Code from the class that makes the original window that has the launch button
FilePicker filePicker = new FilePicker();
public void actionPerformed(ActionEvent e) {
txtImportLog.append("\nUser selecting file");
if (filePicker.canPick()) {
filePicker.init();
filePicker.getImportFile();
} else {
txtImportLog.append("\nCan't pick more files.");
}
}
});
// Code from the class that creates a FilePicker
//(yes, I know the getImportFile() and init() methods are setup badly, its just for
// testing right now
// Initialize - only should be called once
public void init() {
filePicker = new JFileChooser();
interval1 = 0;
interval2 = 0;
testFile = new File(""); // for testing. clearly.
}
// Get a file to import
public static File getImportFile() {
filePicker.setFileSelectionMode(JFileChooser.FILES_ONLY);
filePicker.showOpenDialog(filePicker);
return filePicker.getSelectedFile();
}
答案 0 :(得分:0)
糟糕,我只是拥有代码(由Eclipse插件WindowBuilder自动生成),当父窗口失去焦点时,它会关闭应用程序。文件选择器的父级是主窗口。因此,当用户点击"打开文件选择器"按钮,主窗口的焦点将丢失,关闭应用程序。
答案 1 :(得分:0)
让我们看一下setDefaultCloseOperation。 http://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html
设置当用户在此帧上启动“关闭”时默认发生的操作。您必须指定以下选项之一: DO_NOTHING_ON_CLOSE(在WindowConstants中定义):不要做任何事情;要求程序在已注册的WindowListener对象的windowClosing方法中处理该操作。 HIDE_ON_CLOSE(在WindowConstants中定义):在调用任何已注册的WindowListener对象后自动隐藏框架。 DISPOSE_ON_CLOSE(在WindowConstants中定义):在调用任何已注册的WindowListener对象后自动隐藏和释放框架。 EXIT_ON_CLOSE(在JFrame中定义):使用System exit方法退出应用程序。仅在应用程序中使用它。 默认情况下,该值设置为HIDE_ON_CLOSE。对此属性值的更改会导致触发属性更改事件,属性名称为“defaultCloseOperation”。