欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

文件选择器

程序员文章站 2022-07-13 23:26:36
...
import java.io.File;
import javax.swing.filechooser.FileFilter;
 /*dkplus专业搜集和编写实用电脑软件教程,
*搜集各种软件资源和计算机周边,独立制作视频和ppt和音频微信公众号,
*点击进入 dkplus官方博客 (java网络编程http://dkplus.iteye.com),
*微信搜索dkplus关注公众号可获取海量计算机周边资源。*/
//文件过滤器

public class MyFileFilter extends FileFilter {

    String ends;  //文件后缀
    String description;  //文件描述文字

    public MyFileFilter(String ends, String description) { //构造函数
        this.ends = ends;  //设置文件后缀
        this.description=description;  //设置文件描述文字
    }

    public boolean accept(File file) {  //重载FileFilter中的accept方法
        if (file.isDirectory())  //如果是目录,则返回true
            return true;
        String fileName = file.getName();  //得到文件名称
        if (fileName.toUpperCase().endsWith(ends.toUpperCase()))  //把文件后缀与可接受后缀转成大写后比较
          return true;
        else
          return false;
   }

   public String getDescription() {  //返回文件描述文字
      return description;
   }
}

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

//文件选择器演示
 /*dkplus专业搜集和编写实用电脑软件教程,
*搜集各种软件资源和计算机周边,独立制作视频和ppt和音频微信公众号,
*点击进入 dkplus官方博客 (java网络编程http://dkplus.iteye.com),
*微信搜索dkplus关注公众号可获取海量计算机周边资源。*/
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)  //组合框为"打开"
                   state=chooser.showOpenDialog(null);   //显示打开文件对话框
                else
                   state=chooser.showSaveDialog(null);  //显示保存文件对话框
                File file = chooser.getSelectedFile();  //得到选择的文件

                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();
    }
}