使用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 ...
随机推荐
- vue页面性能优化方案
个人在项目中用到的页面性能优化的方式总结. 一.均衡页面加载文件的大小和数量 1.项目中小图片图片转base64,通过工具如webpack进行图片压缩,文件进行压缩混淆等 2.vue-router 懒 ...
- 用Java实现断点续传的基本思路和代码
用Java实现断点续传的基本思路和代码 URL url = new URL(http://www.oschina.net/no-exist.zip); HttpURLConnection http ...
- mysql sql语句:行转列问题
存在表score,记录学生的考试成绩,如下图所示: 现要求以 学生姓名,语文,数学,英语 这种格式显示学生成绩,如下图所示 具体步骤如下: 1.首先,使用case when函数输出单个课程的成绩 ca ...
- Data Structure Binary Tree: Construct Tree from given Inorder and Preorder traversals
http://www.geeksforgeeks.org/construct-tree-from-given-inorder-and-preorder-traversal/ #include < ...
- LINQ 学习路程 -- 查询操作 Distinct Except Intersect Union
Set Operators Usage Distinct 去掉集合的重复项 Except 返回两个集合的不同,第一个集合的元素不能出现在第二个集合中 Intersect 返回两个集合的交集,即元素同时 ...
- 属性 visibility
http://www.w3school.com.cn/cssref/pr_class_visibility.asp 可能的值 值 描述 visible 默认值.元素是可见的. hidden 元素是不可 ...
- 之前收集的一波MaterialDesign库
material https://github.com/rey5137/material MaterialDesignLibrary md控件库,可兼容到2.2. https://github.com ...
- ES索引瘦身 压缩——_source _all 均disable filed store为no,引入第三方DB存储原始数据,去掉pos倒排和doc_values,强制定期merge segments,将所有fileds合并为一个field big string
原始数据:835MB ES 设置了_source _all disabled 且设置了仅仅存docs倒排Wed Feb 22 11:58:27 CST 2017Before size:1 /home/ ...
- codeforces 622C C. Not Equal on a Segment
C. Not Equal on a Segment time limit per test 1 second memory limit per test 256 megabytes input sta ...
- Agc017_E Jigsaw
传送门 题目大意 有$n$块拼图,每一块都由左中右三个部分组成,每块拼图中间部分是高为$H$的长方形,对于第$i$块品推左侧是高为$A_i$距离底部为$C_i$的长方体,右侧是高位$B_i$距底部为$ ...