利用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工 ...
随机推荐
- 25. SPI
- 【React】react&&redux调试工具
一.React调试工具 1.安装 react-developer-tools,在chrome应用商店进行下载,因为网络限制原因,我们可以使用火狐浏览器进行安装下载 a.打开火狐浏览器的附加组件 b.搜 ...
- activiti7删除流程定义的相关信息
package com.zcc.activiti02; import org.activiti.engine.ProcessEngine;import org.activiti.engine.Proc ...
- CentOS 7 64位虚拟机安装过程
第一步:新建一个虚拟机,选择典型安装,点击下一步.
- python base64编码实现
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" def encode(b ...
- ZanUI-WeApp -- 一个颜值高、好用、易扩展的微信小程序 UI 库
ZanUI-WeApp -- 一个颜值高.好用.易扩展的微信小程序 UI 库:https://cnodejs.org/topic/589d625a5c8036f7019e7a4a 微信小程序之官方UI ...
- 这 17 个 JVM 参数,高级 Java 必须掌握!
作者:SimpleSmile https://www.cnblogs.com/Simple-Object/p/10272326.html前言 大家都知道,jvm在启动的时候,会执行默认的一些参数.一般 ...
- 通过一条很慢的SQL梳理下SQL优化基础
- Matplotlib ValueError: _getfullpathname: embedded null character
Traceback (most recent call last): File "<stdin>", line 1, in <module> File &q ...
- ARC080E
倒着考虑 每次拿出的第一个必须是奇数位置,第二个必须是偶数位置.每次删数都不能跨过已被删去的位置. 事实上只要开个堆维护一下区间就行了.但是众所周知我zz,所以我写的线段树 #include<i ...