我使用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);
}
}
}