• 高级组件——文件选择器JFileChooser


    1、创建文件选择器 JFileChooser

    2、设置选择模式 setFileSelectionMode(int mode)

    JFileChooser.FILES_ONLY 只能选择文件(默认)

    JFileChooser.DIRECTORIES_ONLY 只能选择文件夹

    JFileChooser.FILES_AND_DIRECTORIES 可以选择文件和文件夹

    3、文件的单选、多选 setMultiSelectionEnable(boolean b)

    true 多选

    false 单选(默认)

    4、显示对话框 showOpenDialog(c),c是窗体顶级容器Container c

    文件过滤】如图像、音频、文档等类型。抽象类FileFilter,具体类FileNameExtensionFilter

    FileNameExtensionFilter(String 文件类型描述信息,String 文件类型...)

    例如:FileFilter filter=new FileNameExtensionFilter("图像文件","JPG","PNG","GIF");//java只支持这三种图片格式

       fileChooser.setFileFilter(filter);//文件选择器添加过滤器

    import javax.swing.*;
    import javax.swing.filechooser.FileFilter;
    import javax.swing.filechooser.FileNameExtensionFilter;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    
    public class Demo extends JFrame {
        public Demo() {
            setTitle("文件选择对话框");
            setBounds(100, 100, 400, 100);
            setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            Container c = getContentPane();
            c.setLayout(new FlowLayout());//设置容器为流布局,防止后控件覆盖前控件
    
            JLabel label=new JLabel("文件:");
            c.add(label);
    
            JTextField textField=new JTextField();
            textField.setColumns(20);//文本框宽度
            c.add(textField);
    
            JButton button=new JButton("上传");
            c.add(button);
            /*单击“上传”,弹出文件选择器(文件选择窗口),单击“打开”,被选中的文件路径显示在文本框中*/
            button.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    JFileChooser fileChooser=new JFileChooser();//文件选择器
                    fileChooser.setMultiSelectionEnabled(true);//是否可以多选文件
                    //筛选结果为文件夹和图片文件
                    FileFilter fileFilter=new FileNameExtensionFilter("图片","jpg","png","gif");//过滤器
                    fileChooser.setFileFilter(fileFilter);//设置选择器的过滤器
                    int i=fileChooser.showOpenDialog(c);//在容器中显示文件选择器
                    if (i==JFileChooser.APPROVE_OPTION){//如果在选择器中单击“打开”
                        File file=fileChooser.getSelectedFile();//获取选择器中选中的文件
                        textField.setText(file.getAbsolutePath());//文本框中显示绝对路径
                    }
                }
            });
        }
    
        public static void main(String[] args) {
            Demo frame = new Demo();
            frame.setVisible(true);
        }
    }
  • 相关阅读:
    SQL 优化(来源平时总结及网络分享)
    mysql大事务可能导致哪些问题?
    Cannot find module './assets/css/xxx.scss' or its corresponding type declarations
    烽火2280服务器告警配置
    LSI RAID卡开机出现The following VDs are missing: 000
    LSI RAID卡开机出现 Invalid SAS topology detected.
    问题记录:自研2280服务器登录时不采用https登录提升无效的用户名或密码
    内存ECC介绍及设置
    超微主板出现system tem温度告警
    Selenium Grid自动化分布式执行
  • 原文地址:https://www.cnblogs.com/xixixing/p/9760878.html
Copyright © 2020-2023  润新知