Java Swing JFileChooser保存文件时根据选择的文件类型自动添加后缀名
刘振兴
代码分享
2015年11月01日
12006
暂无评论
最近做的一个聊天室的小项目,想保存聊天的日志文件,遇到了些问题,设置了文件类型过滤,填写文件名后不会自动加上后缀,以下为该问题的解决方案
首先、定义一个自己的文件扩展名过滤器 MyFileFilter:
import java.io.File;
import javax.swing.filechooser.FileFilter;
public class MyFileFilter extends FileFilter {
String ends; // 文件后缀
String description; // 文件描述文字
public MyFileFilter(String ends, String description) { // 构造函数
this.description = description; // 设置文件描述文字
}
@Override
// 只显示符合扩展名的文件,目录全部显示
public boolean accept(File file) {
if (file.isDirectory()) return true;
String fileName = Name();
if (UpperCase().ds.toUpperCase())) return true;
return false;
}
@Override
// 返回这个扩展名过滤器的描述
public String getDescription() {
return this.description;
}
// 返回这个扩展名过滤器的扩展名
public String getEnds() {
ds;
}
}
然后使用自己建的文件扩展名过滤器
JFileChooser fc=new JFileChooser();
fc.setDialogTitle("保存文件");
MyFileFilter txtFilter = new MyFileFilter(".txt", "txt 文件 (*.txt)");
fc.addChoosableFileFilter(txtFilter);
最后处理返回的文件对象
int fresult;
fresult = fc.showSaveDialog(fc);
if (fresult == JFileChooser.APPROVE_OPTION) { // 用户点击了“确定”按钮
File file = fc.getSelectedFile(); //获得文件名
// 获得被选中的过滤器
MyFileFilter filter = (FileFilter();
// 获得过滤器的扩展名
String ends = Ends();
File newFile = null;
if (AbsolutePath().toUpperCase().UpperCase())) {
// 如果文件是以选定扩展名结束的,则使用原名
newFile = file;
System.out.println("路径:"AbsolutePath());
} else {
// 否则加上选定的扩展名
newFile = new AbsolutePath() + ends);
System.out.println("路径:"AbsolutePath());
}
//使用处理后的newFile文件对象
评论一下
赞助本站
版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《IT技术宅》。
本文网址:.html
本文发布于:2024-01-28 17:02:46,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064325748918.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |