JFileChooser打开按钮验证

时间:2016-12-18 08:13:09

标签: java jfilechooser

我使用filechooser来选择目录,addFile(下面)命令部分实际上添加了一个目录,但这是offtopic。

我的问题是,在选择目录时我不能使用打开按钮,除非我在“文件名”文本区域写了一些东西(没有特殊字符的东西)。

因此,如果我选择一个文件夹并单击“打开”或双击文件夹,文件夹将在filechooser中打开,如果我想确认文件夹,除非我在文本区域写了什么,没有任何反应。如果我在文本区域写了乱码并单击打开,则正确选择当前目录。

我缺少什么?如果可以的话,我想避免重写那个验证部分......

public class FileCommandVM extends Panel implements ActionListener{

    private ActionListener father;
    private FileHolder fileHolder;
    private JFileChooser  fc;
    private String caption;

    static final String select="SELECT";

    public FileCommandVM(Object object,ActionListener al) {
        caption="add";
        this.setLayout(null);
        fc=new JFileChooser();
        this.fileHolder=(FileHolder)object;
        JFileChooser  fc=new JFileChooser();
        JButton b=new JButton(caption);
        b.addActionListener(this);
        this.add(fc);
        this.add(b);
        fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        fc.setDialogType(JFileChooser.OPEN_DIALOG);
        fc.setAcceptAllFileFilterUsed(false);
        this.setSize(50,30);
        b.setBounds(1,1,19,15); 
        this.father=al;
    }    
    @Override
    public void actionPerformed(ActionEvent e) {
        int res=(fc.showOpenDialog(null));
        this.fileHolder.setFile(fc.getCurrentDirectory());
        if(res==JFileChooser.APPROVE_OPTION){
            ActionEvent add=new ActionEvent(this.fileHolder, 0, "addFile");
            father.actionPerformed(add);
        }
    }
}

0 个答案:

没有答案