Java 无法使FileNameExtensionFilter工作
我无法让JFileChooser仅显示我想要的扩展名(文本文件) 我做错了什么?如果我删除过滤器,文本文件就会显示出来。 这个问题可能看起来很傻,但我已经试图找到一个解决方案,我的代码看起来和其他示例一样。也许我只是被大脑锁住了 谢谢你抽出时间 我尝试了建议的方法,但仍然存在同样的问题。所以其他地方肯定有问题。我将加载类代码-也许有人可以发现我做错了什么:Java 无法使FileNameExtensionFilter工作,java,jfilechooser,Java,Jfilechooser,我无法让JFileChooser仅显示我想要的扩展名(文本文件) 我做错了什么?如果我删除过滤器,文本文件就会显示出来。 这个问题可能看起来很傻,但我已经试图找到一个解决方案,我的代码看起来和其他示例一样。也许我只是被大脑锁住了 谢谢你抽出时间 我尝试了建议的方法,但仍然存在同样的问题。所以其他地方肯定有问题。我将加载类代码-也许有人可以发现我做错了什么: import java.awt.event.ActionEvent; import java.awt.event.ActionListe
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.filechooser.FileNameExtensionFilter;
public class ButtonListener implements ActionListener {
private JFrame fr;
public ButtonListener (JFrame frame){
fr = frame;
}
public void actionPerformed(ActionEvent event) {
if(event.getSource() instanceof JButton) {
String action = event.getActionCommand();
if (action.equals("First text")){
JFileChooser fc = new JFileChooser();
FileNameExtensionFilter textFilter = new FileNameExtensionFilter("Text Files","txt");
fc.addChoosableFileFilter(textFilter);
int returnVal = fc.showOpenDialog(fr);
}
else if (action.equals("Second text")){
}
else {
System.out.println("Error in ButtonListener");
}
}
}
}
它还没有完成,但应该仍然能够处理我遇到的扩展问题。尝试改用
setFileFilter
我从未使用过FileNameExtensionFilter,但很高兴他们将这个方便的类添加到Java1.6中
我总是先扩展FileFilter,然后覆盖accept。
使用下面定义的类,您可以编写
chooser.setFileFilter(new OpenFileFilter("txt"));
我知道你的问题已经得到了回答,但以防万一你不知道。。。 您还可以使用FileNameExtensionFilter,只需执行以下操作:
fc.setFileFilter(textFilter);
我被困在同一个问题上。作为你一段时间 这个代码对我有用。你可能有一个不同的问题导致了这种行为。嗯,几天后我重新启动了我的电脑,现在它可以工作了——谢谢你的帮助。
/**
* This class defines which file types are opened (by default) by the program.
* This file filter is used to associate a single file type (extension) with the program.
* You could add more than one file type to the open file dialog using this class by repeatedly
* calling addFileFilter.
*/
import java.io.File;
import javax.swing.filechooser.*;
public class OpenFileFilter extends FileFilter {
public String fileExt = "";
String txtExt = ".txt";
public OpenFileFilter() {
this(".pxml"); //default file type extension.
}
public OpenFileFilter(String extension) {
fileExt = extension;
}
@Override public boolean accept(File f) {
if (f.isDirectory())
return true;
return (f.getName().toLowerCase().endsWith(fileExt));
}
public String getDescription() {
if(fileExt.equals(txtExt ))
return "Text Files (*" + fileExt + ")";
else
return ("Other File");
}
}
fc.setFileFilter(textFilter);