【发布时间】:2012-04-07 15:54:17
【问题描述】:
(提前致谢!如果您需要更多信息,请告诉我。示例代码在底部。)
我要解决的问题:
我试图让这个 JFileChooser 对象只显示目录(而不是文件),通过使用 javax.swing.filechooser.FileFilter 对象,该对象在接受(文件文件)覆盖方法中有这个:@987654322 @。但是,至少在我的 Mac 上,它似乎并没有阻止文件与目录一起显示(它确实阻止了在不使用 setFileSelectionMode() 方法的情况下选择文件)。
问题
我错过了什么吗?如果没有,有没有人遇到过这种情况?
我的理解/假设:
- 当您将 javax.swing.filechooser.FileFilter 对象传递给 JFileChooser 的
setFileFilter()方法时,就会发生奇迹。 - 似乎我的带有 setFileFilter() 的 JFileChooser 的行为就像使用
setSelectionMode( JFileChooser.DIRECTORIES_ONLY );
代码
import java.io.File;
import javax.swing.filechooser.FileFilter;
// inside a method that's adding this to a JPanel
_fileChooser = new JFileChooser( "." );
_fileChooser.setControlButtonsAreShown( false );
_fileChooser.setFileFilter( new FolderFilter() );
// _fileChooser.setFileSelectionMode( JFileChooser.DIRECTORIES_ONLY );
_panelMidLeft.add( _fileChooser );
// an inner class, defined somewhere else in the class
private class FolderFilter extends javax.swing.filechooser.FileFilter {
@Override
public boolean accept( File file ) {
return file.isDirectory();
}
@Override
public String getDescription() {
return "We only take directories";
}
}
谢谢!
亚历克斯
【问题讨论】:
-
请学习常见的Java naming conventions(特别是用于名称的大小写)用于类、方法和属性名称并始终如一地使用它。
-
感谢您的建议。除了使用“_”(在我的情况下实际上是表示实例变量)之外,您是否介意指出一些事情,而我现在正在浏览网络上有关约定的文档?
标签: java swing jfilechooser filefilter