时间:2018-10-02

概述:文件选择器

Java实现文件选择器,就是大家熟悉的打开文件、选择文件的对话框,本例子分为两部分来进行,一个部分是选择器对话框构建部分,另一部分是文件过滤部分,用于过滤用户指定选择的文件类型,对话框样式如下图所示:

下面分部分来编写代码:

第一部分:文件选择器部分,含窗口代码:

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) //组合框为"打开"

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

}

}

第二部分,文件过滤器,比如只允许打开.doc类型的文件,就可以使用本过滤器过滤掉其它的文件类型:

import java.io.File;

import javax.swing.filechooser.FileFilter;

//文件过滤器

//Download by http://www.srcfans.com

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;

}

}

java中实现选择文件_Java 实现文件选择对话框及功能相关推荐

  1. JAVA中的适配器应用_Java适配器模式应用之电源适配器功能详解

    本文实例讲述了Java适配器模式应用之电源适配器功能.分享给大家供大家参考,具体如下: 一.模式定义 存在两种适配器模式 1 对象适配器模式,在这种适配器模式中,适配器容纳一个它包裹的类对象的物理实体 ...

  2. Java 中调用 Apache API 实现图片文件的 压缩 与 解压 实例

    < Java 中调用 Apache API 实现图片文件的 压缩 与 解压 > 为什么不直接使用 Java JDK 中自带的 API 呢?必须使用 Apache API 实现文件的压缩与解 ...

  3. java curl get_如何从Java中的curl get请求获取文件?

    我正在尝试使用API​​下载一些XBRL文件.为了做到这一点,我需要做一个卷曲的请求,就像这样:如何从Java中的curl get请求获取文件? curl -XGET http://distribut ...

  4. java如何解压rar文件怎么打开_如何在java中实现对zip和rar文件的解压

    如何在java中实现对zip和rar文件的解压 关注:101  答案:1  mip版 解决时间 2021-01-26 10:50 提问者芣①樣哋羙莮 2021-01-25 22:44 如何在java中 ...

  5. java下面哪些定义正确,请问,以下哪些是java中定义的合法关键字?请选择所有正确答案:...

    请问,以下哪些是java中定义的合法关键字?请选择所有正确答案: 答:interface sizeof volatile "凡是亲眼所见的都是对客观事实的真实反映",这个命题 答: ...

  6. java在dog中定义name变量,组合构造 冯跃峰 java中组合的应用(不相干的类共同完成一个功能)+构造器回顾...

    java中组合的应用(不相干的类共同完成一个功能)+构造器回顾:今天我们了解到java的组合.可以说java组合是非常的重要的.可以对类进行封装,将底层的内容封装起来.甚至于java的继承都没有其重要 ...

  7. java中三种方法_Java文件I/O的三种方法

    Java文件I/O的三种方法 RandomAccessFile是不属于InputStream和OutputStream类系的.实际上,除了实现DataInput和DataOutput接口之外(Data ...

  8. java中如何读写文件_JAVA: 读写文件的几种方法

    如果您使用java8,可以也参考这篇文章:JAVA: Java8流逐行读取文件 import java.io.BufferedReader; import java.io.BufferedWriter ...

  9. java复制文件_java多种文件复制方式以及效率比较

    1.背景 java复制文件的方式其实有很多种,可以分为 - 传统的字节流读写复制FileInputStream,FileOutputStream,BufferedInputStream,Buffere ...

  10. 转!!java中File的delete()方法删除文件失败的原因

    一般来说 java file.delete失败 有以下几个原因  1.看看是否被别的进程引用,手工删除试试(删除不了就是被别的进程占用) 2.file是文件夹 并且不为空,有别的文件夹或文件,  3. ...

最新文章

  1. ElasticSearch安装使用 操作索引
  2. 选化学可否报计算机专业,选课选物化生报什么专业前景好
  3. 读书笔记《单核工作法》1
  4. 创建二维数组(一维长度3,二维长度6),值为一维数组和二维数组索引值的积
  5. 老男孩python21期作业_(禁闲聊)绘画讨论10个群第176期作业展示
  6. Notepad++中的UTF-8无BOM格式编码
  7. 3、CommonChunkPlugin提取公共js-以提取一个jquery为例
  8. 转载python2进制打包相关
  9. codeforces 369C Valera and Elections
  10. 【一天一个NLP任务】(Day 1)——BERT解决中文情绪分类任务
  11. matlab时空地理回归,★时空地理加权回归space-time GWR GTWR分析软件-香港中文大学-黄波教授...
  12. 亚信科技外包_外包到亚信---转正疑问 - 菜鸟@大虾的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  13. 知网下载pdf论文的最简单方法
  14. 人脸识别库-于仕琪老师库地址
  15. mysql正则mybatis中用法_SQL正则表达式及mybatis中使用正则表达式
  16. wifi模块php,什么是Wifi模块 Wifi模块功能有哪些
  17. 未来软件开发的发展趋势
  18. 嵌入式系统的概念,嵌入式系统的组成及特点,嵌入式系统的基本开发流程
  19. Gentoo虚拟机安装--基于分发内核
  20. php控制输出数量,PHP 输出控制

热门文章

  1. Texlive安装与环境变量配置
  2. 文件句柄和文件描述符的区别和理解指针
  3. Python学习--not语句
  4. Attention机制_pytorch
  5. Lambda 表达式基础理论与示例
  6. 蓝牙mesh网络技术的亮点
  7. 客快物流大数据项目(十五):DockeFile常用命令
  8. 2021年大数据HBase(九):Apache Phoenix的安装
  9. CentOs下卸载程序
  10. Cocos Creator 音频文件Audio的绑定与使用(TypeScript)