2

我有一个JFileChooser在特定目录中打开的一个,然后允许用户选择其中的目录(选择单击单击并OK按下按钮时)。

但是,当双击目录时,文件选择器会打开该目录而不是选择它。

我怎么能

  1. 覆盖双击选择目录
  2. 禁用初始目录之外的导航
  3. 禁用双击?

我已经尝试覆盖其中的isTraversable()方法,FileView该方法FileSystemView可以将文件选择器限制在一个目录中,但是,它不会显示所述目录中的任何项目。

这是我现在拥有的代码:

JFileChooser fc = new JFileChooser(dir);

fc.setApproveButtonText("OK");
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fc.setMultiSelectionEnabled(false);
fc.showOpenDialog(fileChooserDialog);
File file = fc.getSelectedFile();
if (file.getParent().equals(dir)) {
    //do something
}
4

1 回答 1

2

您可以修改操作图。我无法访问编译器 ATM,因此无法对其进行测试,但它应该可以工作。

JFileChooser chooser = new JFileChooser(".");  
ActionMap am = chooser.getActionMap();  
Action key = am.get("WHATEVER_THEACTIONAME_FOR_OPEN-DIR._IS") //I think it's "Open Folder";
key.setEnabled(false);

稍后当我有时间并可以访问编译器时,我将更新此答案。

于 2013-08-02T20:57:06.660 回答