Java 如何添加一个“;新文件夹";按钮到JFileChooser

Java 如何添加一个“;新文件夹";按钮到JFileChooser,java,swing,jfilechooser,Java,Swing,Jfilechooser,我正在尝试使用JFileChooser来选择文件夹。在这个文件选择器中,我希望用户可以选择创建一个新文件夹,然后选择它。我注意到JFileChooser“保存”对话框默认有一个“新建文件夹”按钮,但在“打开”对话框中没有类似的按钮。有人知道如何在“打开”对话框中添加“新建文件夹”按钮吗 具体而言,我想将该按钮添加到使用以下代码创建的对话框中: JFrame frame = new JFrame(); JFileChooser fc = new J

我正在尝试使用JFileChooser来选择文件夹。在这个文件选择器中,我希望用户可以选择创建一个新文件夹,然后选择它。我注意到JFileChooser“保存”对话框默认有一个“新建文件夹”按钮,但在“打开”对话框中没有类似的按钮。有人知道如何在“打开”对话框中添加“新建文件夹”按钮吗

具体而言,我想将该按钮添加到使用以下代码创建的对话框中:

            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();
                    }