JFileChooser 保存文件时根据选择的文件类型改变文件后缀名

来源:互联网 发布:一级域名怎么备案 编辑:程序博客网 时间:2024/04/29 07:09

文件类型有几种,如“.txt”".sav" ".doc"等
选择哪种类型就在文件名框中的文件名后面自动添加这种类型的后缀
如选择的事“.sav” ,则文件名后缀就是“.sav”


第一、定义一个自己的文件扩展名过滤器 MyFileFilter:

Java code
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.ends = ends; // 设置文件后缀 this.description = description; // 设置文件描述文字 } @Override // 只显示符合扩展名的文件,目录全部显示 public boolean accept(File file) { if (file.isDirectory()) return true; String fileName = file.getName(); if (fileName.toUpperCase().endsWith(this.ends.toUpperCase())) return true; return false; } @Override // 返回这个扩展名过滤器的描述 public String getDescription() { return this.description; } // 返回这个扩展名过滤器的扩展名 public String getEnds() { return this.ends; }}


第二、为保存文件对话框添加自定义的扩展名过滤器:

Java code
txtFilter = new MyFileFilter(".txt", "txt 文件 (*.txt)");savFilter = new MyFileFilter(".sav", "sav 文件 (*.sav)");docFilter = new MyFileFilter(".doc", "doc 文件 (*.doc)");fileChooser.addChoosableFileFilter(txtFilter);fileChooser.addChoosableFileFilter(savFilter);fileChooser.addChoosableFileFilter(docFilter);


第三、在保存文件对话框返回文件名时,同时取得被选中的扩展名:

Java code
int fresult;fresult = fileChooser.showSaveDialog(this);if (fresult == JFileChooser.APPROVE_OPTION) { // 用户点击了“确定”按钮 File file = fileChooser.getSelectedFile(); //获得文件名 // 获得被选中的过滤器 MyFileFilter filter = (MyFileFilter)fileChooser.getFileFilter(); // 获得过滤器的扩展名 String ends = filter.getEnds(); File newFile = null; if (file.getAbsolutePath().toUpperCase().endsWith(ends.toUpperCase())) { // 如果文件是以选定扩展名结束的,则使用原名 newFile = file; } else { // 否则加上选定的扩展名 newFile = new File(file.getAbsolutePath() + ends); }// 以下用 newFile 完成保存文件的操作}
原创粉丝点击