利用JFileChooser实现文件选择对话框
简单的文件选择对话框:
/**
* 打开文件和存储文件
*/
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
JLabel label = null;
JTextArea textarea = null;
JFileChooser fileChooser = null;
f = new JFrame("FileChooser Example");
Container contentPane = f.getContentPane();
textarea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textarea);
scrollPane.setPreferredSize(new Dimension(350, 300));
JButton b1 = new JButton("新建文件");
b1.addActionListener(this);
JButton b2 = new JButton("存储文件");
b2.addActionListener(this);
panel.add(b1);
panel.add(b2);
contentPane.add(scrollPane, BorderLayout.CENTER);
contentPane.add(panel, BorderLayout.SOUTH);
f.setVisible(true);
f.addWindowListener(new WindowListener() {
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
public void windowClosing(WindowEvent e) {
System.exit(0);
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
});
new FileChooserUtils();
}
File file = null;
int result;
fileChooser.setApproveButtonText("确定");
fileChooser.setDialogTitle("打开文件");
result = fileChooser.showOpenDialog(f);
textarea.setText("");
if (result == JFileChooser.APPROVE_OPTION) {
file = fileChooser.getSelectedFile();
label.setText("您选择打开的文件名称为:" + file.getName());
} else if (result == JFileChooser.CANCEL_OPTION) {
label.setText("您没有选择任何文件");
}
try {
fileInStream = new FileInputStream(file);
} catch (FileNotFoundException e2) {
label.setText("File Not Found");
return;
}
while ((readbyte = fileInStream.read()) != -1) {
textarea.append(String.valueOf((char) readbyte));
}
} catch (IOException e2) {
label.setText("读取文件错误");
} finally {
try {
if (fileInStream != null)
fileInStream.close();
} catch (IOException e3) {
}
}
if (e.getActionCommand().equals("存储文件")) {
result = fileChooser.showSaveDialog(f);
file = null;
String fileName;
file = fileChooser.getSelectedFile();
label.setText("您选择存储的文件名称为:" + file.getName());
} else if (result == JFileChooser.CANCEL_OPTION) {
label.setText("您没有选择任何文件");
}
try {
fileOutStream = new FileOutputStream(file);
} catch (FileNotFoundException e2) {
label.setText("File Not Found");
return;
}
fileOutStream.write(content.getBytes());
} catch (IOException e2) {
label.setText("写入文件错误");
} finally {
try {
if (fileOutStream != null)
fileOutStream.close();
} catch (IOException e3) {
}
}
}
/**
* 文件过滤
*/
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.filechooser.FileFilter;
JFrame f = null;
JLabel label = null;
JFileChooser fileChooser = null;
public FileFilterUtils() {
f= new JFrame("FileFilter");
Container contentPane = f.getContentPane();
JButton b = new JButton("打开文件");
b.addActionListener(this);
label = new JLabel(" ",JLabel.CENTER);
label.setPreferredSize(new Dimension(150, 30));
contentPane.add(label,BorderLayout.CENTER);
contentPane.add(b,BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
f.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
});
}
public static void main(String[] args) {
new FileFilterUtils();
public void actionPerformed(ActionEvent e) {
fileChooser = new JFileChooser("c:\\");
fileChooser.addChoosableFileFilter(new JAVAFileFilter("class"));
fileChooser.addChoosableFileFilter(new JAVAFileFilter("java"));
int result = fileChooser.showOpenDialog(f);
if(result == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
label.setText("您选择了:"+file.getName()+"文件");
}else if(result == fileChooser.CANCEL_OPTION) {
label.setText("您没有选取文件");
}
}
}
class JAVAFileFilter extends FileFilter{
String ext;
public JAVAFileFilter(String ext) {
this.ext = ext;
}
public boolean accept(File file) {
if(file.isDirectory())
return true;
String fileName = file.getName();
int index = fileName.lastIndexOf('.');
if(index > 0&& index<fileName.length()-1) {
String extension = fileName.substring(index+1).toLowerCase();
if(extension.equals(ext))
return true;
}
return false;
}
public String getDescription() {
if(ext.equals("java"))
return "JAVA Source File (*.java)";
if(ext.equals("class"))
return "JAVA Source File (*.class)";
return "";
}
}
利用JFileChooser实现文件选择对话框的更多相关文章
- 文件选择对话框:CFileDialog
程序如下: CString FilePathName; //文件名参数定义 CFileDialog Dlg(TRUE,NULL,NULL, ...
- NX二次开发-UFUN文件选择对话框UF_UI_create_filebox
NX11+VS2013 #include <uf.h> #include <uf_ui.h> UF_initialize(); //文件选择对话框 char sPromptSt ...
- VBScript - 弹出“文件选择对话框”方法大全!
本文记录,VBScript 中,各种打开 "文件选择对话框" 的方法. 实现方法-1 (mshta.exe): 首先,我们要实现的就是,弹出上面的这个"文件选择对话框&q ...
- Java Swing提供的文件选择对话框 - JFileChooser
JFileChooser() 构造一个指向用户默认目录的 JFileChooser. JFileChooser(File currentDirectory) 使 ...
- Java文件选择对话框(文件选择器JFileChooser)的使用:以一个文件加密器为例
文件加密器,操作过程肯定涉及到文件选择器的使用,所以这里以文件加密器为例.下例为我自己写的一个文件加密器,没什么特别的加密算法,只为演示文件选择器JFileChooser的使用. 加密器界面如图: 项 ...
- JFileChooser 打开文件选择(一)
import javax.swing.JFileChooser; import javax.swing.filechooser.FileNameExtensionFilter; public clas ...
- SWT的文件选择对话框I的使用
swt文件选择框 FileDialog fileselect=new FileDialog(shell,SWT.SINGLE); fileselect ...
- DevExpress的TreeList实现自定义右键菜单打开文件选择对话框
场景 DevExpress的TreeList实现节点上添加自定义右键菜单并实现删除节点功能: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/det ...
- C# 文件选择对话框,Unity3d文件保存对话框
using OpenWinForm = System.Windows.Forms; 在unity3d中,使用FileDialog应该把System.Windows.Forms.dll拷贝到unity工 ...
随机推荐
- 实用maven笔记二-信息&依赖管理
目前我经历的公司的主要项目管理工具都是maven,maven除了是一个实用的构建工具外,也是一个功能强大的项目管理工具.其管理功能分为信息管理和依赖管理.通过pom.xml文件实现. 信息管理 信息管 ...
- 几道JS代码手写面试题
几道JS代码手写面试题 (1) 高阶段函数实现AOP(面向切面编程) Function.prototype.before = function (beforefn) { let ...
- 关于软件IntelliJ IDEA的使用技巧(三)
二,IntelliJ IDEA的工具栏介绍 2,IntelliJ IDEA菜单栏 (9)Tools工具 ✌1.Tasks & Contexts: ✌2.Generate JavaDoc: ✌3 ...
- tushare下载安装教程与版本更新步骤
使用前提 安装Python 安装pandas:pip install pandas 安装lxml:pip install lxml 下载安装 方式1:pip install tushare,如果安装网 ...
- USACO 2014 US Open Dueling GPS's /// SPFA
题目大意: 给定n个点m条边的有向图 有两个GPS 分别认为 A[i]到B[i] 的一条边的花费是P[i].Q[i] 当当前走的边不是GPS认为的最短路上的边就会被警告 即两个GPS都不认为是最短路上 ...
- 利用HTML和CSS实现常见的布局
水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式,下面介绍四种实现水平居中的方法(注:下面各个实例中实现的是child元素的对齐操作,child元素的父容器是paren ...
- Codeforces 19E&BZOJ 4424 Fairy(好题)
日常自闭(菜鸡qaq).不过开心的是看了题解之后1A了.感觉这道题非常好,必须记录一下,一方面理清下思路,一方面感觉自己还没有完全领会到这道题的精髓先记下来以后回想. 题意:给定 n 个点,m 条边的 ...
- 让APK只包含指定的ABI(转)
转自:http://blog.csdn.net/justfwd/article/details/49308199 现在很多android第三方 sdk是以aar形式提供的,甚至是远程aar,如果这个s ...
- vue 初始化rem
在assets => js => rem.js export default { init () { let sw = document.documentElement.clientWid ...
- Sql 语法整理
Query 1 SELECT 和 SELECT * 语句 SELECT LastName,FirstName FROM Persons 2 SELECT DISTINCT 语句 SELECT DIST ...