使用JFileChooser保存文件
--------------------siwuxie095
工程名:TestFileChooser
包名:com.siwuxie095.filechooser
类名:TestSave.java
工程结构目录如下:

代码:
|
package com.siwuxie095.filechooser; import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.File; import java.io.IOException; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.border.EmptyBorder; import com.sun.java.swing.plaf.windows.WindowsLookAndFeel; /** * JFileChooser 是 Java Swing 框架中的文件选择器, * 在应用程序中经常会遇到打开文件和保存文件等操作, * 文件选择器 JFileChooser 是专门应对这种情况而出现的 * * @author siwux * */ public class TestSave extends JFrame { private JPanel contentPane; /** * Launch the application. */ public static EventQueue.invokeLater(new Runnable() { public try { TestSave frame = new TestSave(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public TestSave() {
try { UIManager.setLookAndFeel(new WindowsLookAndFeel()); } catch (UnsupportedLookAndFeelException e) { e.printStackTrace(); }
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane);
JButton btnSave = new JButton("Save"); btnSave.addMouseListener(new MouseAdapter() { @Override public //创建一个JFileChooser对象 JFileChooser chooser=new JFileChooser(); /** * 弹出一个保存文件的对话框 * 需要指定一个 * 返回值是 int 类型,创建以接收返回值 */ int value=chooser.showSaveDialog(TestSave.this);
/** * 如果返回 APPROVE_OPTION,也可以使用对象调用,即 chooser.APPROVE_OPTION * * 说明有文件被成功返回,即 * 这里实际上是将一个不存在的文件包装成了一个假设存在的文件,然后将之返回 * 但该文件并没有真实的被创建,仅仅是创建了一个文件对象,并可设定路径 * 需要使用 createNewFile() 创建文件 */ if (value==JFileChooser.APPROVE_OPTION) {
//打印返回文件的绝对路径 //System.out.println(chooser.getSelectedFile().getAbsolutePath());
try {
File newFile=chooser.getSelectedFile();
if (!newFile.exists()) { newFile.createNewFile(); System.out.println(newFile.getAbsolutePath()); }
} catch (IOException e1) { e1.printStackTrace(); } }
} }); btnSave.setFocusable(false); contentPane.add(btnSave, BorderLayout.NORTH); } } |
将窗体
JFrame 的 LookAndFeel 设定为 Windows
在根面板
contentPane 的上方添加一个 JButton
将
JButton 的 focusable 属性设为
false,并将其文本(text)改为:
Save,Rename 为:btnSave
为 JButton 添加 mouseClicked 事件,点击 按钮 弹出对话框
运行程序:


【made by siwuxie095】
使用JFileChooser保存文件的更多相关文章
- java JFileChooser选择文件和保存文件
//文件过滤器import java.io.File; import javax.swing.filechooser.FileFilter; public class MyFilter extends ...
- 使用JFileChooser打开文件
-----------------siwuxie095 工程名:TestFileChooser 包名:com.siwuxie095.fi ...
- 12.JAVA之GUI编程打开与保存文件
功能:java图形用户界面开发,练习打开保存文件 代码如下: import java.awt.FileDialog; import java.awt.Frame; import java.awt.Me ...
- vim保存文件时,生成.un~文件
在用vim保存文件时,文件夹下生成.un~文件 怎么删除这些文件呢 在网上搜索的答案: http://stackoverflow.com/questions/15660669/what-is-a-un ...
- android 保存文件的各种目录列表
一般的,我们可以通过context和Environment来获取要保存文件的目录 ($rootDir) +- /data -> Environment.getDataDirectory() | ...
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...
- C#项目打开/保存文件夹/指定类型文件,获取路径
C#项目打开/保存文件夹/指定类型文件,获取路径 转:http://q1q2q363.xiaoxiang.blog.163.com/blog/static/1106963682011722424325 ...
- FileOutputStream保存文件
//保存文件,根据传入的路径,存放在SD卡目录下public boolean saveToPath(String title, String pageName) { Bitmap b = getCha ...
- Qt snippet — 打开文件&保存文件
打开文件: void Notepad::on_actionOpen_triggered() { QString fileName = QFileDialog::getOpenFileName(this ...
随机推荐
- CentOS7 添加用户到 sudoers
1.在装完系统后,CentOS默认普通用户是无法使用sudo命令的,这时我们就需要将登陆的用户加入/etc/sudoers 文件中 假设用户名是yhd 3.切换到超级用户:$ su - 当然输入的 p ...
- ubuntu16.04 docker安装
docker官网安装页面:https://docs.docker.com/engine/installation/linux/ubuntu/ 这个是ubuntu14.04 LTS需要的 $ sudo ...
- Data Structure Binary Tree: Print ancestors of a given binary tree node without recursion
http://www.geeksforgeeks.org/print-ancestors-of-a-given-binary-tree-node-without-recursion/ #include ...
- 【三】MongoDB文档的CURD操作
一.插入文档 使用insert方法插入文档到一个集合中,如果集合不存在创建集合,有以下几种方法: db.collection.insertOne({}):(v3.2 new) #插入一个文档到集合中 ...
- bagging与boosting集成学习、随机森林
主要内容: 一.bagging.boosting集成学习 二.随机森林 一.bagging.boosting集成学习 1.bagging: 从原始样本集中独立地进行k轮抽取,生成训练集.每轮从原始样本 ...
- pyqt5开发之俄罗斯方块
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial This is a Tetri ...
- 深入理解JVM - 晚期(运行期)优化
在部分商用虚拟机中,Java程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或者代码块的运行特别频繁时,就会把这些代码认定为“热点代码”(Hot Spot Code) ...
- HTML5 学习记录——0
2015/08/19 HTML5的标签功能划分:基础.格式.表单.框架.图像.音视频.链接.列表.表格.样式.元信息.编程 1.HTML基础标题 <h1> - <h6>段落 & ...
- wiredtiger存储引擎介绍——本质就是LSM,当然里面也可以包含btree和列存储
见:http://www.slideshare.net/profyclub_ru/4-understanding-and-tuning-wired-tiger-the-new-high-perform ...
- Git_学习_01_ 常用 Git 命令清单
我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下 ...