一、效果图

 1、弹出对话框

 2、选择文件,点击保存

 3、查看路径

二、主要代码

import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import javax.swing.plaf.nimbus.NimbusLookAndFeel;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;


/**
 * 测试文件选择器JFileChooser的使用,现在可以选择文件,那么怎么选择
 *
 * JTextPanel的作用是什么?
 *
 */
class JFileChooserTest extends MouseAdapter {

    JFrame jFrame = null;
    JPanel jPanel = null;
    JFileChooser chooser;

    public JFileChooserTest() {
        try {
            UIManager.setLookAndFeel(new NimbusLookAndFeel());
        } catch (UnsupportedLookAndFeelException e) {
            e.printStackTrace();
        }

        // 1、定义窗口
        jFrame = new JFrame("文件选择");

        // 2、设置坐标,宽和高
        jFrame.setBounds(500, 500, 550, 550);

        // 3、设置布局管理器
        jFrame.setLayout(new BorderLayout());

        // 4、初始化面板
        jPanel = new JPanel();

        // 5、定义按钮
        JButton jButton = new JButton("选择文件");

        // 6、添加鼠标监听器为当前对象
        jButton.addMouseListener(this);

        // 7、把按钮,添加到面板jPanel对象里。
        jPanel.add(jButton);

        // 8、把jPanel对象添加到窗口的北方
        jFrame.add(jPanel, BorderLayout.NORTH);

        // 10、设置可见
        jFrame.setVisible(true);

        // 11、设置默认关闭行为为退出。
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    // 点击一次,就创建一个文件对话框
    @Override
    public void mouseClicked(MouseEvent e) {

        // 1、创建对象
        chooser = new JFileChooser(new File("D:/Develop"));

        // 2、隐藏文件是否可以
        //chooser.setFileHidingEnabled(true);

        // 3、是否允许多选
        //chooser.setMultiSelectionEnabled(true);

        // 4、添加文件过滤器
        chooser.addChoosableFileFilter(new FileFilter() {
            @Override
            public boolean accept(File file) {
                // 会对每个文件进行判断,符合要求返回true;不符合返回false;
                // 判断是文件
                if (file.isFile()) {

                    // 获得文件名
                    String fileName = file.getName();

                    // 获得扩展名
                    String extName = fileName.substring(fileName.lastIndexOf("."));

                    // 判断后缀类型;图片是jpg、png后缀格式;
                    if (extName.equals(".jpg")){

                    }
                }

                return true;
            }

            @Override
            public String getDescription() {
                return "过滤器描述";
            }
        });

        // 5、设置打开类别
        chooser.setDialogType(JFileChooser.OPEN_DIALOG);

        // 6、设置可见
        chooser.setVisible(true);

        // 7、打开对话框 showOpenDialog()是打开文件,showSaveDialog()是存储文件,有两种。
        int returnValue = chooser.showOpenDialog(jFrame);

        if(returnValue == JFileChooser.APPROVE_OPTION){
            System.out.println("确定按钮触发");
        }
        if (returnValue == JFileChooser.CANCEL_OPTION){
            System.out.println("取消");
        }
        System.out.println(returnValue);

        // 获得选择的文件对象
        File selectedFile = chooser.getSelectedFile();

        // 多选文件对象。
        File[] selectedFiles = chooser.getSelectedFiles();

        if(selectedFile != null) {
            System.out.println("选择的文件是:" + selectedFile.getName());
            System.out.println("选择的文件的路径是:" + selectedFile.getPath());

        }else {
            System.out.println("没有选择任何文件和目录!");
        }

        // 设置选择模式,有文件和目录
        //file2.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );
        //file2.setVisible(true);

        // 设置标题
        // file2.setDialogTitle("请选择文件");

        // 打开对话框
        // file2.showOpenDialog(frame);
    }
}


public class FileSelect   {

    public static void main(String[] args) {

        new JFileChooserTest();

        JFileChooser fileChooser = new JFileChooser("目录选择");

        // JFileChooser允许多选;
        // fileChooser.setMultiSelectionEnabled(true);

        // JFileChooser有三种内容选择模式:
        // 只支持目录
        // fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

        // 只支持文件
        fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

        // 同时支持文件、目录
        // fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

        // 有两种对话框模式:打开、存储;
        // int dialog = fileChooser.showOpenDialog(null);

        // 弹出保存对话框,如果点击了确定
        if (JFileChooser.APPROVE_OPTION == fileChooser.showSaveDialog(null)){
            System.out.println("保存路径:" + fileChooser.getSelectedFile().getPath());
        };
    }
}

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐