Filefiter的使用
自己定义一个类实现FileFilter 或者FilenameFilter接口,在实现方法accept中自定义你需要的扩展名,它返回一个布尔值,这样就可以选择制定目录下的制定扩展名的文件。
总之Filefilter是抽象类,要使用就要继承它并且在子类实现它的全部方法或者部分方法.
具体代码的实现:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import java.io.*;
public class OpenFileTester extends JFrame implements ActionListener
{
private JMenuBar jMenuBar;
private JMenu jMenu;
private JMenuItem jMenuItem;
public OpenFileTester(){
jMenuBar=new JMenuBar();
jMenu=new JMenu("文件");
jMenuItem=new JMenuItem("打开");
jMenuItem.addActionListener(this);
jMenu.add(jMenuItem);
jMenuBar.add(jMenu);
setTitle("JFileChooser Demo");
setJMenuBar(jMenuBar);
setSize(new Dimension(300,200));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{
try{
JFileChooser jf=new JFileChooser();
jf.addChoosableFileFilter(new OFileFilter(".exe","exe文件"));
jf.addChoosableFileFilter(new OFileFilter(".txt","txt文件"));
int result=jf.showOpenDialog(null);
}catch(Exception ex){
ex.printStackTrace();
}
}
public static void main(String[] args) //主方法
{
new OpenFileTester().setVisible(true);
}
}
JDK中的FileFilter相关:
/*
*类OFileFilter继承自FileFilter抽象类,用以在JFileChooser类中实现文件过滤器
*/
class OFileFilter extends javax.swing.filechooser.FileFilter
//OfileFilter继承了抽象类FileFilter,并实现其中所有的方法(实现部分依旧是抽象类(概念))
//FileFilter类的方法有两个:
| abstract boolean | |
| abstract String | getDescription() |
{
private String strEnds;
private String strDescription;
public OFileFilter(String strEnds,String strDescription) //构造方法
{
this.strEnds=strEnds;
this.strDescription=strDescription;
}
public boolean accept(File file)
{
if(file.isDirectory()) return true;
String filename=file.getAbsolutePath();
if(filename.toUpperCase().endsWith(strEnds.toUpperCase())){
return true;
}
else
{
return false;
}
}
public String getDescription()
{
return this.strDescription;
}
}
本文介绍如何通过自定义Java类实现文件过滤器FileFilter或FilenameFilter接口,以便在JFileChooser中筛选特定扩展名的文件。文章提供了一个具体的例子,展示了如何创建一个继承自FileFilter的OFileFilter类,并在JFileChooser中应用该过滤器。
236

被折叠的 条评论
为什么被折叠?



