我扩展了一个
JFileChooser
,并覆盖了approveSelection
方法,因此当用户选择无效目录然后单击打开按钮时,将显示一个JOptionPane
中的错误消息。但我想让我的JFileChooser
更加用户友好,并使打开按钮在用户单击无效目录后变为禁用状态,当用户单击有效目录后重新启用。是否可能进一步定制我的JFileChooser
,并访问打开按钮,以便可以相应地更改按钮的状态(可能是通过监听器来监听目录选择)?public class MyFileChooser extends JFileChooser {
private final JFrame mainFrame;
public MyFileChooser(JFrame mainFrame) {
this.mainFrame = mainFrame;
setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
}
@Override
public void approveSelection() {
if (/* directory is valid */) {
super.approveSelection();
return;
}
JOptionPane.showMessageDialog(mainFrame, "Invalid directory", "Error", JOptionPane.ERROR_MESSAGE);
}
}