Java 如何添加一个“;新文件夹";按钮到JFileChooser
我正在尝试使用JFileChooser来选择文件夹。在这个文件选择器中,我希望用户可以选择创建一个新文件夹,然后选择它。我注意到JFileChooser“保存”对话框默认有一个“新建文件夹”按钮,但在“打开”对话框中没有类似的按钮。有人知道如何在“打开”对话框中添加“新建文件夹”按钮吗 具体而言,我想将该按钮添加到使用以下代码创建的对话框中:Java 如何添加一个“;新文件夹";按钮到JFileChooser,java,swing,jfilechooser,Java,Swing,Jfilechooser,我正在尝试使用JFileChooser来选择文件夹。在这个文件选择器中,我希望用户可以选择创建一个新文件夹,然后选择它。我注意到JFileChooser“保存”对话框默认有一个“新建文件夹”按钮,但在“打开”对话框中没有类似的按钮。有人知道如何在“打开”对话框中添加“新建文件夹”按钮吗 具体而言,我想将该按钮添加到使用以下代码创建的对话框中: JFrame frame = new JFrame(); JFileChooser fc = new J
JFrame frame = new JFrame();
JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fc.setFileFilter( new FileFilter(){
@Override
public boolean accept(File f) {
return f.isDirectory();
}
@Override
public String getDescription() {
return "Any folder";
}
});
fc.setDialogType(JFileChooser.OPEN_DIALOG);
frame.getContentPane().add(fc);
frame.pack();
frame.setVisible(true);
嗯。最后,我用“保存”对话框而不是“打开”对话框解决了这个问题。标准的“保存”对话框已经有了一个“新建文件夹”按钮,但它的顶部还有一个“另存为:”面板,这是我不想要的。我的解决方案是使用标准的保存对话框,但隐藏“另存为”面板 以下是“保存”对话框的代码:
JFrame frame = new JFrame();
JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fc.setFileFilter( new FileFilter(){
@Override
public boolean accept(File f) {
return f.isDirectory();
}
@Override
public String getDescription() {
return "Any folder";
}
});
fc.setDialogType(JFileChooser.SAVE_DIALOG);
fc.setApproveButtonText("Select");
frame.getContentPane().add(fc);
frame.setVisible(true);
此部件定位并隐藏“另存为:”面板:
为什么它必须是一个“开放”对话框?您可以使用“保存”对话框,只需更改“批准”按钮上的标签即可。谢谢mercutio。这有帮助。我在下面的解决方案中使用了这个想法。我认为它不存在的原因是,根据定义,
Open
意味着存在一个文件。如果您正在创建一个新目录,则其中不能有现有文件。考虑违反标准对话框的可用性,以及您将如何准确地使用该功能。
ArrayList<JPanel> jpanels = new ArrayList<JPanel>();
for(Component c : fc.getComponents()){
if( c instanceof JPanel ){
jpanels.add((JPanel)c);
}
}
jpanels.get(0).getComponent(0).setVisible(false);
frame.pack();
File dir = fc.getSelectedFile();
if(!dir.exists()){
dir = dir.getParentFile();
}