JFileChooser

简介:    http://www.cnblogs.com/dyllove98/archive/2012/03/05/2461895.html     package swing.choose; import java.

 

 

 http://www.cnblogs.com/dyllove98/archive/2012/03/05/2461895.html

 

 

package swing.choose;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;

public class JFileChooseDemo extends JFrame {
    private static final long serialVersionUID = 1L;

    private JFileChooser fileChooser = new JFileChooser();;

    public JFileChooseDemo() {

        JButton button = new JButton("Click");
        button.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                int result = fileChooser.showOpenDialog(JFileChooseDemo.this);
                if (result == JFileChooser.CANCEL_OPTION) {
                    return;
                }

                File chooseFile = fileChooser.getSelectedFile();
                add(new JLabel("<html><font color=blue>" + chooseFile.getAbsolutePath()));
                validate();
            }
        });
        this.add(button);
        this.setLayout(new FlowLayout());
        this.setSize(400, 200);

        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        this.setLocationRelativeTo(null);
        this.setVisible(true);
    }

    public static void main(String[] args) {
        JFileChooseDemo demo = new JFileChooseDemo();
        demo.fileChooser.setSelectedFile(new File("test.xls"));

        // 设置文件过滤器
//        demo.fileChooser.setFileFilter(new FileNameExtensionFilter("Description", "gif", "jpg", "bmp"));
        demo.fileChooser.setFileFilter(new FileFilter() {

            @Override
            public String getDescription() {
                return "MS-Excel 2003 文件(.xls)|快捷方式(.lnk)";
            }

            @Override
            public boolean accept(File f) {
                if (f.isDirectory()) {
                    return true;
                }
                return f.getName().toLowerCase().endsWith("") || f.getName().toLowerCase().endsWith(".lnk");
            }
        });

    }
}

 

相关文章
|
10月前
|
SQL 存储 关系型数据库
MySQL秘籍之索引与查询优化实战指南
最左前缀原则。不冗余原则。最大选择性原则。所谓前缀索引,说白了就是对文本的前几个字符建立索引(具体是几个字符在建立索引时去指定),比如以产品名称的前 10 位来建索引,这样建立起来的索引更小,查询效率更快!
362 22
 MySQL秘籍之索引与查询优化实战指南
|
11月前
|
编解码 算法 API
国产多通道肌电采集芯片及肌电模块
唯理WLEC3医疗级肌电模块,采用自研WLM128芯片,具备低功耗、高精度特点,适用于肌电采集及手势识别等应用。模块内置滤波、降噪算法,支持蓝牙/串口数据传输,兼容多种通道配置,提供云端API深度分析,确保高效精准的数据处理。
|
10月前
|
运维 监控 Cloud Native
构建深度可观测、可集成的网络智能运维平台
本文介绍了构建深度可观测、可集成的网络智能运维平台(简称NIS),旨在解决云上网络运维面临的复杂挑战。内容涵盖云网络运维的三大难题、打造云原生AIOps工具集的解决思路、可观测性对业务稳定的重要性,以及产品发布的亮点,包括流量分析NPM、网络架构巡检和自动化运维OpenAPI,助力客户实现自助运维与优化。
|
存储 SQL Oracle
什么是 RDBMS?
【8月更文挑战第1天】
449 6
什么是 RDBMS?
|
JavaScript
Vue3基础(19)___vite.config.js中配置路径别名
本文介绍了如何在Vue 3的Vite配置文件`vite.config.js`中设置路径别名,以及如何在页面中使用这些别名导入模块。
617 0
Vue3基础(19)___vite.config.js中配置路径别名
|
机器学习/深度学习 运维 监控
深度学习之视频内容理解
基于深度学习的视频内容理解(Video Content Understanding, VCU)是一项关键技术,旨在通过神经网络模型自动分析、解读和提取视频中的语义信息。
869 10
|
XML 缓存 前端开发
别用 Filter 了,试试 Spring 自带的方式处理 CORS 跨域问题
从 CORS 到 Spring MVC 跨源资源共享(CORS) 即 Cross-Origin Resource Sharing,也常被译为跨域资源共享。作为 W3C 的标准,它允许浏览器向跨源服务器发起请求,克服了 AJAX 只能同源使用的限制。
791 0
别用 Filter 了,试试 Spring 自带的方式处理 CORS 跨域问题
|
存储 机器学习/深度学习 人工智能
5个优质免费自然语言处理学习资源 | 语言技术导航
5个优质免费自然语言处理学习资源 | 语言技术导航
|
安全 测试技术 数据库
软件测试案例 | 某教务管理平台系统的系统测试总结报告
集成测试通过之后,各个模块已经被组装成了一个完整的软件包,这时就需要进行系统测试了。传统的系统测试指的是通过集成测试的软件系统,作为计算机系统的一个重要组成部分,其将与计算机硬件、外部设备、支撑软件等其他系统元素组合在一起进行测试,目的在于通过与系统需求定义作比较,发现软件与需求规格不符合或者相矛盾的地方,从而提出更加完善的解决方案。这里特别提出需要软硬件支撑的虚拟现实(Virtual Reality,VR)项目测试的特殊性。
974 0
软件测试案例 | 某教务管理平台系统的系统测试总结报告
|
SQL Java 数据库连接
Java【付诸实践 01】使用org.apache.ibatis.plugin.Interceptor拦截器实现全局mapper.xml参数注入(可用于切换数据库实例schema)源码实例分享
Java【付诸实践 01】使用org.apache.ibatis.plugin.Interceptor拦截器实现全局mapper.xml参数注入(可用于切换数据库实例schema)源码实例分享
480 0