我使用JFileChooser的showOpenDialog方法来打开文件。
如何将ActionListener附加到JFileChooser
的“确定”按钮上,并在监听器完成后停止此对话框关闭。
目前我的代码:
public class MainFileChooser extends JFileChooser {
private FileFilter plainFilter;
public MainFileChooser() {
super.setMultiSelectionEnabled(true);
super.setAcceptAllFileFilterUsed(false);
plainFilter = new PlainFilter();
}
public int showOpenFileDialog() {
ActionListener actionListener = null;
// JDialog openFileDialog = super.createDialog(getParent());
super.addActionListener(actionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
File[] selectedFiles = MainFileChooser.this.getSelectedFiles();
for (File file : selectedFiles) {
if (!file.exists()) {
JOptionPane.showMessageDialog(getParent(), file.getName() + " does not exist!",
"File is not found", JOptionPane.ERROR_MESSAGE);
}
}
}
});
super.setFileFilter(plainFilter);
int userOption = super.showOpenDialog(MainFrame.getInstance().getMainFrame());
super.removeActionListener(actionListener);
return userOption;
}
方法showOpenFileDialog
会弹出一个对话框,当我点击“确认”按钮时,会调用actionListener
,如果文件不存在,则会弹出错误消息。
但是JFileChooser无论如何都会关闭。如果文件不存在,我希望JFileChooser保持打开状态!
谢谢!