JFile选择目录但显示文件
2022-09-02 19:34:52
我觉得应该有一个简单的方法来做到这一点,但我无法弄清楚。我有一个JFileChooser,允许用户选择目录。我想显示目录中的所有文件,以便为用户提供一些上下文,但只有目录应该被接受为选择(也许在选择文件时,“打开”按钮将被禁用)。有没有一种简单的方法来做到这一点?
我觉得应该有一个简单的方法来做到这一点,但我无法弄清楚。我有一个JFileChooser,允许用户选择目录。我想显示目录中的所有文件,以便为用户提供一些上下文,但只有目录应该被接受为选择(也许在选择文件时,“打开”按钮将被禁用)。有没有一种简单的方法来做到这一点?
我的解决方案是将camickr和trashgod的答案合并:
final JFileChooser chooser = new JFileChooser() {
public void approveSelection() {
if (getSelectedFile().isFile()) {
return;
} else
super.approveSelection();
}
};
chooser.setFileSelectionMode( JFileChooser.FILES_AND_DIRECTORIES );
请参阅如何使用文件选择器中的 setFileSelectionMode():
setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY)
附录:通过取消注释此 FileChooserDemo
的第 73 行可以看到效果,但它似乎与平台相关。
附录:如果使用 ,请考虑相应地更改按钮文本:FILES_AND_DIRECTORIES
chooser.setApproveButtonText("Choose directory");
由于效果取决于L&F,请考虑在已经满足您的UI要求的平台上使用:DIRECTORIES_ONLY
if (System.getProperty("os.name").startsWith("Mac OS X")) {
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
} else {
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
}