java fileChooser禁用主工具栏中的功能和选项

时间:2016-04-27 09:57:14

标签: java swing jfilechooser

JFileChooser - 我想禁用顶级工具栏中的一些选项 - " Home" ," Up One Level" ,"新文件夹"。     仅在我的代码中"新文件夹"工作,它被禁用。我尝试在所有按钮上使用这种方法,但它不起作用,这里是代码:

$

2 个答案:

答案 0 :(得分:3)

这是一种基于图标搜索的强力方式,灵感来自此example

public static void main(final String[] args) {

    JFileChooser cho = new JFileChooser();

    disableButton(cho, "FileChooser.homeFolderIcon");
    disableButton(cho, "FileChooser.upFolderIcon");
    disableButton(cho, "FileChooser.newFolderIcon");

    cho.showOpenDialog(null);

}

public static void disableButton(final Container c, final String iconString) {
    int len = c.getComponentCount();
    for (int i = 0; i < len; i++) {
        Component comp = c.getComponent(i);
        if (comp instanceof JButton) {
            JButton b = (JButton) comp;
            Icon icon = b.getIcon();
            if (icon != null
                    && icon == UIManager.getIcon(iconString)) {
                b.setEnabled(false);
            }
        } else if (comp instanceof Container) {
            disableButton((Container) comp, iconString);
        }
    }
}

以下是UIManager的{​​{1}}图标标识符列表:

  

FileView.directoryIcon

     

FileView.fileIcon

     

FileView.computerIcon

     

FileView.hardDriveIcon

     

FileView.floppyDriveIcon

     

FileChooser.newFolderIcon

     

FileChooser.upFolderIcon

     

FileChooser.homeFolderIcon

     

FileChooser.detailsViewIcon

     

FileChooser.listViewIcon

答案 1 :(得分:1)

查看Single Root File Chooser以了解其他方法。

它只允许用户导航指定目录下的目录。 “Up One”按钮被禁用。 “主页”按钮将带您返回指定的导演。

您仍然需要显示“新建文件夹”按钮。