java中实现选择文件_Java 实现文件选择对话框及功能

时间:2018-10-02

概述:文件选择器

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

553c5a70ab44686e69304e02c647bbd0.gif

下面分部分来编写代码:

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

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;

}

}

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值