saonian666 2008-11-06 20:34
浏览 284
已采纳

java filter文件过滤问题



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

//文件选择器演示

public class JFileChooserDemo extends JFrame {
      private JFileChooser chooser;   //文件选择器
      private JButton button;   //选择文件按钮
      private JComboBox comboBox;   //用于设定文件对话框作用(打开还是保存文件)
    
      public JFileChooserDemo() {
          super("JFileChooser 演示");   //调用父类构造函数
          Container contentPane = getContentPane();   //得到容器
          contentPane.setLayout(new FlowLayout());   //设置布局管理器为Flowlayout
          chooser=new JFileChooser();   //初始化文件选择器
          button = new JButton("选择文件");   //初始化按钮
          comboBox=new JComboBox();   //初始化组合框
          comboBox.addItem("打开");   //增加组合框列表内容
          comboBox.addItem("保存");
          contentPane.add(comboBox);   //增加组件到容器
          contentPane.add(button);
        
          button.addActionListener(new ActionListener() {   //按钮事件处理
              public void actionPerformed(ActionEvent e) {
                  int state;   //文件选择器返回状态
                  //   chooser.removeChoosableFileFilter(chooser.getAcceptAllFileFilter());   //移去所有文件过滤器
                   chooser.addChoosableFileFilter(new MyFileFilter("gif","图像文件"));    //增加文件过滤器,接爱gif文件
                
                  if (comboBox.getSelectedIndex()==0)   //组合框为"打开"
                    
                  {
                      System.out.println("~~~~~~~~~~~~~"+0);
                      state=chooser.showOpenDialog(null);    //显示打开文件对话框
                      System.out.println("zhuangtai===="+state);
                  } else {
                      System.out.println("~~~~~~~~~~~~~"+1);
                      state=chooser.showSaveDialog(null);   //显示保存文件对话框
                  }
                
                  File file = chooser.getSelectedFile();   //得到选择的文件
                  if(true == ( file != null) ) {
                      System.out.println(file.toString());
                  }
                  if(file != null && state == JFileChooser.APPROVE_OPTION) {   //选择了文件并点击了打开可保存按钮
                      JOptionPane.showMessageDialog(null, file.getPath()); //显示提示信息
                  } else if(state == JFileChooser.CANCEL_OPTION) {   //点击了撤销按钮
                      JOptionPane.showMessageDialog(null, "退出!");   //显示提示信息
                  } else if(state == JFileChooser.ERROR_OPTION) {
                      JOptionPane.showMessageDialog(null, "错误!");   //显示提示信息
                  }
              }
          });
        
          this.setSize(200,100);   //设置窗口大小
          this.setVisible(true);   //设置窗口可见
          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   //关闭窗口时退出程序
      }
    
      public static void main(String args[]) {
          new JFileChooserDemo();
      }
}



为什么在eclipse里面会报错呢?我准备写一个简单的文件打开关闭过滤文件的程序,为什么会报错呢?

在google搜索了半天没有结果,来这问问,帮帮忙了。谢谢

我的JDK是1.6的

 

  • 写回答

3条回答 默认 最新

  • sptzone 2008-11-06 21:03
    关注

    1.
    [code="java"]import javax.swing.filechooser.FileFilter; [/code]

    2.实现内部类
    [code="java"]class MyFileFilter extends FileFilter {

        public boolean accept(File pathname) {   
            if (pathname.getAbsolutePath().endsWith(".gif") || pathname.isDirectory())   
                return true;   
    
            return false;   
        }   
    
        public String getDescription() {   
            return "图像文件";   
        }   
    
    }   [/code]
    

    3.使用这个内部类
    [code="java"]chooser.addChoosableFileFilter(new MyFileFilter()); [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境