如何在只接受目录的JFileChooser中设置默认文件名?

时间:2016-08-22 10:40:17

标签: java jfilechooser

我的应用程序有点问题,因为它需要将一些文件保存在用户通过(非常简单的)类DirSaveChooser选择的目录中:

public class DirSaveChooser extends JFileChooser{

    private int result = ERROR_OPTION;


    public DirSaveChooser(File file){

        setDialogTitle("Select directory");
        setAcceptAllFileFilterUsed(false);

        setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

        setSelectedFile(file);

        result = showSaveDialog(new JFrame());
    }
}

我想使用方法setSelectedFile(File)设置建议的文件名(例如“new_untitled_dir”),但这只有在我删除:

时才有可能
setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

我不喜欢这个解决方案,因为我不想也看到对话框中的文件。

我该怎么做?

我在构造函数中添加了一个简单的方法来查找JTextField(确定,这不是一个很好的解决方案,但它可以工作):

JTextField text_field = findTextField(this);
if(text_field != null)
    text_field.setText("new_untitled_dir");

private JTextField findTextField(JComponent parent){

    for(Component comp : parent.getComponents()){

        if(comp instanceof JTextField)
            return (JTextField) comp;

        if(comp instanceof JComponent){
            JComponent jcomp = (JComponent) comp;
            JTextField text_field = findTextField(jcomp);
            if(text_field != null)
                return text_field;
        }
    }

    return null;
}

0 个答案:

没有答案