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条)

报告相同问题?

悬赏问题

  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿