Java的JFileChooser类的使用详解
Java的JFileChooser类的使用详解 JFileChooser是一个Java类,提供了一个文件对话框,用于选择文件或文件夹。它可以通过API打开一个模态对话框,或直接实例化并加入到其他组件。 直接使用JFileChooser打开对话框 JFileChooser可以直接通过API打开一个对话框,例如: ```java final JFileChooser fc = new JFileChooser(); int returnVal = fc.showOpenDialog(aComponent); File file = fc.getSelectedFile(); ``` 使用同一个JFileChooser对象创建打开和保存对话框 使用同一个JFileChooser对象创建打开和保存对话框有以下好处: 1. Chooser会记住当前文件夹。 2. 只需设置chooser一次,然后多次使用。 定制FileChooser 可以修改对话框文件选择的模式,例如只允许选择文件夹: ```java fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); ``` 还可以设置其他文件选择模式,例如FILES_AND_DIRECTORIES和FILES_ONLY。 文件过滤器 JFileChooser支持以下三类Filter,检查顺序依次: 1. Built-in filtering:直接调用Chooser上方法设置此类过滤器,例如是否显示隐藏文件。 2. Application-controlled filtering:自定义一个FileFilter的子类,通过调用setFileFilter方法设置该过滤器。 3. User-choosable filtering:添加一些可选的过滤器,例如fc.addChoosableFileFilter(new ImageFilter())。 自定义文件视图 可以自定义一个FileView子类,然后调用setFileView方法来改变默认的文件视图。 自定义附件组件 可以自定义一个附件组件,例如文件预览图,例如fc.setAccessory(new ImagePreview(fc)); 基本用法 基本用法示例如下: ```java JFileChooser dlg = new JFileChooser(); dlg.setDialogTitle("Open JPEG file"); int result = dlg.showOpenDialog(this); if (result == JFileChooser.APPROVE_OPTION) { File file = dlg.getSelectedFile(); ... } ``` 自定义FileFilter 可以继承FileFilter抽象超类,例如: ```java import javax.swing.filechooser.FileFilter; public final class PictureFileFilter extends FileFilter { private String extension; private String description; public PictureFileFilter(String extension, String description) { super(); this.extension = extension; this.description = description; } // ... } ``` JFileChooser是一个非常有用的Java类,提供了许多有用的方法和选项,可以根据需要进行自定义和修改。
- 粉丝: 10
- 资源: 65
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于ISWT的OFDM系统设计仿真案例 matlab源代码 代码有详细注释,完美运行
- 主动道避撞控制:基于五次多项式的道轨迹规划方法 首先,通过计算紧急转向避撞的临界纵向安全距离,确定五次多项式起点 基于此,建
- Python项目设计资源指南
- OFDM UWB系统基于训练序列的同步算法 matlab源代码 代码有详细注释,完美运行
- comsol能带复现六角晶格光子晶体四重简并狄拉克点零折射率
- IMG_20241003_210840.jpg
- 带载流子密度变化的双温方程COMSOL-Matlab计算模型,其使用的理论模型为图3所示,作用材料为金箔,此外,会附送普通双温方
- 汇编语言之入门基础教程
- 发电厂锅炉控制西门子1200PLC和KTP700博途15.1和16程序,BSZ990
- 基于MATLAB的数字信号处理、数字滤波器设计与实现
- 1
- 2
- 3
前往页