引言:当我们使用某个软件或者浏览某个网站,点击上传文件的时候都会弹出一个框让我们选择要上传的文件,虽然经常遇到,但却不知道这是哪种组件。在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:

打开:                                                    

选择本地文件夹路径 element jfilechooser选择文件夹_抽象类

保存:

选择本地文件夹路径 element jfilechooser选择文件夹_Java_02

如果想要拿到打开的文件,只需要将File对象加入到InputSteam里面去就好,我的代码里面也有这一部分,其它的按照Java文件打开的操作来就好。