JFileChooser文件过滤的实现

今天突然想到打开对话框中的文件过滤是如何实现,查了下资料,发现比较简单的就
     能实现。
     下面是核心代码:
     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser chooser=new JFileChooser();
chooser.setCurrentDirectory(new File("."));
final List list=new ArrayList();
list.add("jpg");
list.add("png");
list.add("png");

chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {

            @Override
            public boolean accept(File f) {
               if(f.isDirectory())return true;
               String name=f.getName();
               int p=name.lastIndexOf('.');
               if(p==-1)return false;
               String suffix=name.substring(p+1).toLowerCase();
               return list.contains(suffix);
            }

            @Override
            public String getDescription() {
                return "image files";
            }
       
});
int r=chooser.showOpenDialog(this);
if(r!=JFileChooser.APPROVE_OPTION)return;

}
当然这段代码唯一实现的就是过滤功能。里面用了一个FileFilter匿名类实现文件的过滤。
其中里面的两个方法如accept都是覆盖了父类的操作方法。accept返回一个布尔值,判断文件是否
符合你的要求,符合返回真,否这返回假。这是一个回调函数,参数File f,就是被传进去的文件,然后
再按你的逻辑进行过滤。
这段代码过滤出文件夹,后缀名为png,jpg,gif的文件

 

——————————————————————————————

新网站上线 欢迎大家

网站交易中心 在这里你可以购买或者出售你的网站。
网站信息发布中心 在这里有各种交易信息的发布。同时提供
一些软件的免费使用(附有源码)。
网站博客系统 这里你可以注册自己的博客。一个账户无限量博客
联系方式: support@websiteempire.cn
QQ:563828566
MSN:zhuhailin123@hotmail.com 
                                
     
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 Java Swing 中的 JFrame 实现简易文件编辑器的示例代码: ```java import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.filechooser.FileNameExtensionFilter; public class SimpleEditor extends JFrame implements ActionListener { private JTextArea textArea; private JButton openButton, saveButton; public SimpleEditor() { // 设置窗口的标题和大小 setTitle("Simple Editor"); setSize(500, 400); setDefaultCloseOperation(EXIT_ON_CLOSE); // 创建文本区域并添加到滚动面板中 textArea = new JTextArea(); JScrollPane scrollPane = new JScrollPane(textArea); getContentPane().add(scrollPane, BorderLayout.CENTER); // 创建按钮并添加到面板中 openButton = new JButton("Open"); openButton.addActionListener(this); saveButton = new JButton("Save"); saveButton.addActionListener(this); JPanel buttonPanel = new JPanel(); buttonPanel.add(openButton); buttonPanel.add(saveButton); getContentPane().add(buttonPanel, BorderLayout.NORTH); } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == openButton) { // 创建文件选择器并设置过滤JFileChooser fileChooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("Text Files", "txt"); fileChooser.setFileFilter(filter); // 显示文件选择器并处理用户选择的文件 int result = fileChooser.showOpenDialog(this); if (result == JFileChooser.APPROVE_OPTION) { File file = fileChooser.getSelectedFile(); try { BufferedReader reader = new BufferedReader(new FileReader(file)); String line; while ((line = reader.readLine()) != null) { textArea.append(line + "\n"); } reader.close(); } catch (Exception ex) { ex.printStackTrace(); } } } else if (e.getSource() == saveButton) { // 创建文件选择器并设置过滤JFileChooser fileChooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("Text Files", "txt"); fileChooser.setFileFilter(filter); // 显示文件选择器并处理用户选择的文件 int result = fileChooser.showSaveDialog(this); if (result == JFileChooser.APPROVE_OPTION) { File file = fileChooser.getSelectedFile(); try { BufferedWriter writer = new BufferedWriter(new FileWriter(file)); writer.write(textArea.getText()); writer.close(); } catch (Exception ex) { ex.printStackTrace(); } } } } public static void main(String[] args) { // 创建并显示简易文件编辑器窗口 SimpleEditor editor = new SimpleEditor(); editor.setVisible(true); } } ``` 该程序创建了一个窗口,其中包括一个文本区域和两个按钮,用于打开和保存文件。当用户单击“Open”按钮时,程序会显示一个文件选择器,用户可以选择要打开的文件。程序会将打开的文件中的文本显示在文本区域中。当用户单击“Save”按钮时,程序会显示一个文件选择器,用户可以选择要保存的文件。程序会将文本区域中的文本保存到所选的文件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值