ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – JFileChooser事件

2019-06-23 23:44:07  阅读:327  来源: 互联网

标签:java events swing jfilechooser


我有一个名为“search”的按钮,用于打开JFileChooser窗口.双击目录后该窗口应自动关闭,因此不需要单击取消或任何其他按钮.那可能吗?

谢谢.

解决方法:

您可以通过向JFileChooser添加PropertyChangeListener来完成此操作.在propertyChange()方法内检查属性名称是否为JFileChooser.DIRECTORY_CHANGED_PROPERTY.如果是,只需调用将关闭文件选择器对话框的JFileChooser.approveSelection()方法.

注意:由于选择文件夹会自动关闭文件选择器,在这种情况下,将文件选择器(用户)权限指向他/她可以选择目标文件夹的文件夹是很重要的.为此,使用JFileChooser的构造函数来设置初始/当前文件夹(您可以将文件夹作为文件或字符串传递),也可以在构造函数之后通过调用JFileChooser.setCurrentDirectory()来设置它.

这是一个完整的例子:

JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JButton b = new JButton("test");
b.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        JFileChooser fc = new JFileChooser();
        fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

        fc.addPropertyChangeListener(new PropertyChangeListener() {
            @Override
            public void propertyChange(PropertyChangeEvent evt) {
                if (JFileChooser.DIRECTORY_CHANGED_PROPERTY.equals(
                        evt.getPropertyName())) {
                    System.out.println("DIRECTORY CHANGED");
                    fc.approveSelection();
                }
            }
        });

        int result = fc.showOpenDialog(f);
        if (result == JFileChooser.APPROVE_OPTION) {
            System.out.println("Chosen folder: " + fc.getSelectedFile());
        }
    }
});
f.add(b);

f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);

标签:java,events,swing,jfilechooser
来源: https://codeday.me/bug/20190623/1275601.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有