JFileChooser - 我想禁用顶级工具栏中的一些选项 - " Home" ," Up One Level" ,"新文件夹"。 仅在我的代码中"新文件夹"工作,它被禁用。我尝试在所有按钮上使用这种方法,但它不起作用,这里是代码:
$
答案 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”按钮被禁用。 “主页”按钮将带您返回指定的导演。
您仍然需要显示“新建文件夹”按钮。