以下是我点击按钮时打开JFileChooser
的代码。我创建了一个过滤器,只允许选择.jpg文件,但我的代码不能按预期工作。所有类型的文件都显示在JFileChooser
对话框中。部分代码:
MyFileFilter filter;
fPhoto=new JFileChooser();
fPhoto.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
fPhoto.setFileFilter(filter);
MyFileFilter类:
public class MyFileFilter extends javax.swing.filechooser.FileFilter{
public boolean accept(File f){
return f.isDirectory()||(f.isFile()&&f.getName().toLowerCase().endsWith(".jpg"));
}
public String getDescription(){
return ".jpg files";
}
}
答案 0 :(得分:5)
您需要实例化filter
。拥有null
FileFilter
将导致没有过滤掉任何文件类型:
MyFileFilter filter = new MyFileFilter();
答案 1 :(得分:3)
如果您想浏览指定的文件,请查看此代码
try
{
JFileChooser fc = new JFileChooser();
fc.setAcceptAllFileFilterUsed(false);
fc.setFileFilter(new FileFilter() {
@Override
public boolean accept(File file) {
return (file.isDirectory()||file.getName().endsWith(".JPG")||file.getName().endsWith(".jpg"));
}
@Override
public String getDescription() {
return "Multi-Video Files";
}
});
File file;
if(JFileChooser.APPROVE_OPTION==fc.showDialog(null, "Select Files"))
{
File file = fc.getSelectedFile(); //HERE YOU WILL GET THE SELECTED FILE
}
}catch(Exception e){System.out.println("error");
}
如果您只想浏览目录,那么
JFileChooser fc = new JFileChooser();
File file;
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
if(JFileChooser.APPROVE_OPTION==fc.showDialog(null, "Select"))
{
File file = fc.getSelectedFile(); //HERE YOU WILL GET THE SELECTED DIRECTORY PATH
}