如何在JFileChooser中禁用目录打开?

时间:2013-08-02 19:42:29

标签: java swing filesystems jfilechooser

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

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

我怎么能

  1. 覆盖双击以选择目录
  2. 禁用初始目录之外的导航
  3. 禁用双击?
  4. 我已尝试覆盖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
    }
    

1 个答案:

答案 0 :(得分: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);

稍后当我有时间和访问编译器时,我会更新这个答案。