我创建了一个JFileChooser来打开一个文件,但是当我选择一个文件并打开它时,第二次我要选择一个文件时,JFileChooser不在当前目录中。 如何设置JFileChooser打开当前目录?
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );
fileChooser.setDialogType(JFileChooser.SAVE_DIALOG);
int result = fileChooser.showOpenDialog( this );
if ( result == JFileChooser.APPROVE_OPTION ){
File fileName = fileChooser.getSelectedFile();
File path=fileChooser.getCurrentDirectory();
if ( ( fileName == null ) || ( fileName.getName().equals( "" ) ) )
{
JOptionPane.showMessageDialog( this, "Invalid File Name",
"Invalid File Name", JOptionPane.ERROR_MESSAGE );
}
else{
currentPath=path.getPath()+"\\"+fileName.getName();}
}
答案 0 :(得分:12)
通过File
参数将目录传递到the constructor(File
也可以是目录,FYI),或者在制作之前使用.setCurrentDirectory(File dir)
方法JFileChooser可见。
另外,要使JFileChooser保持在同一文件夹中,您需要保存上次选择的文件/目录的文件夹,并使用THAT值来控制它在后续时间通过{{1}启动的文件夹}
答案 1 :(得分:3)
使选择器成为类级别属性并仅创建一次。这样,它不仅指向关闭时的位置,还会选择相同的大小,位置,文件过滤器等。