JFileChooser 可以 select 除当前文件夹之外的任何文件夹吗?
JFileChooser can select any folder apart from the current one?
我正在使用 JFileChooser 来允许用户select 一个文件夹。他们必须能够查看每个文件夹中的文件以了解上下文。问题是弹出对话框时我无法 select 我所在的文件夹。 (即我点击 "open" 没有任何反应)。但是,如果我切换到另一个目录然后再回到第一个目录,那么我可以 select 它。
public static String selectFolder()
{
final JFileChooser chooser = new JFileChooser() {
public void approveSelection() {
if (getSelectedFile().isFile()) {
return;
} else
super.approveSelection();
}
};
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle("Select Folder");
chooser.setFileSelectionMode( JFileChooser.FILES_AND_DIRECTORIES );
chooser.setAcceptAllFileFilterUsed(false);
chooser.showOpenDialog(null);
File x = chooser.getSelectedFile();
if( x != null )
return x.toString();
return null;
}
根据 JFileChooser,您必须在对话框中选择一个文件或文件夹,然后才允许您单击 open/save。
public static String selectFolder() {
final JFileChooser chooser = new JFileChooser() {
public void approveSelection() {
if (getSelectedFile().isFile()) {
return;
} else
super.approveSelection();
}
};
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle("Select Folder");
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
chooser.setAcceptAllFileFilterUsed(true);
chooser.setSelectedFile(new java.io.File("."));
chooser.showOpenDialog(null);
File x = chooser.getSelectedFile();
if (x != null)
return x.toString();
return null;
}
您只需添加以下行:
chooser.setSelectedFile(new java.io.File("."));
为了方便用户,设置为与CurrentDirectory
一样,让用户在点击按钮时看到会选择哪个目录
我正在使用 JFileChooser 来允许用户select 一个文件夹。他们必须能够查看每个文件夹中的文件以了解上下文。问题是弹出对话框时我无法 select 我所在的文件夹。 (即我点击 "open" 没有任何反应)。但是,如果我切换到另一个目录然后再回到第一个目录,那么我可以 select 它。
public static String selectFolder()
{
final JFileChooser chooser = new JFileChooser() {
public void approveSelection() {
if (getSelectedFile().isFile()) {
return;
} else
super.approveSelection();
}
};
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle("Select Folder");
chooser.setFileSelectionMode( JFileChooser.FILES_AND_DIRECTORIES );
chooser.setAcceptAllFileFilterUsed(false);
chooser.showOpenDialog(null);
File x = chooser.getSelectedFile();
if( x != null )
return x.toString();
return null;
}
根据 JFileChooser,您必须在对话框中选择一个文件或文件夹,然后才允许您单击 open/save。
public static String selectFolder() {
final JFileChooser chooser = new JFileChooser() {
public void approveSelection() {
if (getSelectedFile().isFile()) {
return;
} else
super.approveSelection();
}
};
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle("Select Folder");
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
chooser.setAcceptAllFileFilterUsed(true);
chooser.setSelectedFile(new java.io.File("."));
chooser.showOpenDialog(null);
File x = chooser.getSelectedFile();
if (x != null)
return x.toString();
return null;
}
您只需添加以下行:
chooser.setSelectedFile(new java.io.File("."));
为了方便用户,设置为与CurrentDirectory
一样,让用户在点击按钮时看到会选择哪个目录