引言:当我们使用某个软件或者浏览某个网站,点击上传文件的时候都会弹出一个框让我们选择要上传的文件,虽然经常遇到,但却不知道这是哪种组件。在Java里面这种文件导航窗口就是FileChooser啦,由于项目要用到,特此学习一波,谈一下自己的一些理解。
首先JFileChooser不是抽象类也不是接口,因此可以实例化一个对象。下面我将简单介绍一下JFileChooser在使用过程中经常用到的一些方法。
一、方法说明:
1.JFileChooser的构造方法有三种,参数设置不同代表的功能也不同。
(1)默认构造函数:JFileChooser();
(2)参数为currentDirectory:JFileChooser(currentDirectory),参数表示的意思是打开文件选取器时默认显示的文件夹(默认为用户文件夹)
(3)参数为currentDirectoryPath:JFileChooser(currentDirectoryPath),参数表示的意思是打开文件选取器时默认显示的文件夹(默认为用户文件夹)
2.void setCurrentDirectory(File file)
该方法主要用于设置打开导航框时显示的文件夹。
3.void setFileSelectionMode(int mode)
该方法用于设置文件的打开模式,一般有以下三种文件打开模式:
(1)JFileChooser.FILES_ONLY: 只能选文件;
(2) JFileChooser.DIRECTORIES_ONLY: 只能选文件夹;
(3)JFileChooser.FILES_AND_DIRECTORIES: 文件和文件夹都可以选。
4.void setMultiSelectionEnabled(boolean b)
该方法用于设置是否可以同时选取多个文件,默认值是false。
5.void addChoosableFileFilter(FileFilter filter)
该方法是用于设置文件过滤选择器,也就是允许你选择的文件类型。
6.void setFileFilter(FileFilter filter)
该方法用于设置默认的文件过滤器。
7.void setSelectedFile(File file) ,void setSelectedFiles(File[] selectedFiles)
两者均用于设置被选中的文件,单个或多组文件。
8.int showOpenDialog(Component parent)
该方法用于显示我们选择文件时弹出的框,亦即文件导航窗。
9.int showSaveDialog(Component parent)
顾名思义该方法是保存文件的弹出框。
此处两个parent表示的意思是:文件选取器对话框的父组件, 对话框将会尽量显示在靠近 parent 的中心; 如果为 null, 则显示在屏幕中心。
同时呢这两个方法的返回值也代表着特定的意思:
(1)JFileChooser.CANCEL_OPTION: 点击了取消或关闭 ;
(2) JFileChooser.APPROVE_OPTION: 点击了确认或保存 ;
(3)JFileChooser.ERROR_OPTION: 出现错误。
常常用于判断文件是否要打开或者保存。
10.File getSelectedFile() ,File[] getSelectedFiles()
该方法用于获取打开或保存的文件。
二、详细代码分析:
https://paste.ubuntu.com/p/PYRFtCCMBt/
注释说得很清楚,详情参考上面的地址。
最后附一张演示Demo:
打开:
保存:
如果想要拿到打开的文件,只需要将File对象加入到InputSteam里面去就好,我的代码里面也有这一部分,其它的按照Java文件打开的操作来就好。