在启用了jfilechooser的多文件选择器中打开对话框后,文件将显示所选文件

Pravesh Bansal

我正在处理这个Swing组件JfileChooser。我选择了多个文件,然后单击“确定”。之后,如果我再次打开以选择文件,它将向我显示我不想要的先前选择的文件。我希望保留以前的目录,而不是以前的文件。它给用户带来非常糟糕的体验。

这是我写的代码片段。

    JFileChooser fileopen = new JFileChooser();   
        private void fileButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileButtonActionPerformed
            fileopen.setMultiSelectionEnabled(true);
            int ret = fileopen.showDialog(null, "Open file");
            if (ret == JFileChooser.APPROVE_OPTION) {
                File[] file = fileopen.getSelectedFiles();
                fileText.setText(file[0].getAbsolutePath());
                for( int i =1;i < file.length;i++)
                {
                    fileText.append("||");       
                    fileText.append(file[i].getAbsolutePath());
                }
            }else {
                log.info("File access cancelled by user.");
        }       

    }//GEN-LAST:event_fileButtonActionPerformed 

我试过了setcurrentdirecotory和所有这些。任何帮助将不胜感激。

疯狂程序员

JFileChooser每次需要时都创建一个新实例,或者调用setSelectedFiles并传递它null

更新

因此,我快速浏览了setSelectedFilesetSelectedFiles方法,它们应该清除选择和“文件名”字段,但在Mac OS上似乎不适用于我,因此可能是外观上的问题。

我倾向于做的是作弊。我将最后一个目录值存储在PreferencesAPI中,之所以这样做,是因为它非常容易,而且还意味着该值在整个执行过程中都可以持久存在,非常有帮助。如果您不想在执行过程中将其持久化,则可以使用MapProperties或其他变量,由您自己决定

public class TestPane extends JPanel {

    public TestPane() {
        setLayout(new GridBagLayout());
        JButton btn = new JButton("...");
        add(btn);
        btn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JFileChooser fileopen = new JFileChooser();
                String path = Preferences.userNodeForPackage(TestPane.class).get("FileAccess.lastSelectedDirectory", null);
                if (path != null) {
                    File filePath = new File(path);
                    if (filePath.exists() && filePath.isDirectory()) {
                        fileopen.setCurrentDirectory(filePath);
                    }
                }
                fileopen.setMultiSelectionEnabled(true);
                int ret = fileopen.showDialog(null, "Open file");
                if (ret == JFileChooser.APPROVE_OPTION) {
                    File[] file = fileopen.getSelectedFiles();
                    System.out.println("You selected " + file.length + " files");
                    Preferences.userNodeForPackage(TestPane.class).put("FileAccess.lastSelectedDirectory", fileopen.getCurrentDirectory().getAbsolutePath());
                } else {
                    System.out.println("File access cancelled by user.");
                }
            }
        });
    }

    @Override
    public Dimension getPreferredSize() {
        return new Dimension(200, 200);
    }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在javascript中打开文件对话框,并获取所选文件的值

来自分类Dev

如果“ display:none”,则无法在android webview中打开文件选择器对话框

来自分类Dev

从文件选择器对话框中删除文件或打开文件会导致 React 组件卸载

来自分类Dev

Android多文件选择器/选择器对话框

来自分类Dev

在文件选择器对话框中显示缩略图

来自分类Dev

Firefox在文件选择器对话框中不显示缩略图(gtkfilechooser + libegg)

来自分类Dev

在文件选择器对话框中显示缩略图

来自分类Dev

即使在选择文件 c# 后,打开文件对话框仍然显示

来自分类Dev

硒关闭文件选择器对话框

来自分类Dev

重新打开对话框时,日期选择器对话框未显示所选日期

来自分类Dev

Outlook VBA在对话框中添加所选文件的超链接

来自分类Dev

Python GTK:确认覆盖对话框阻止文件选择器对话框

来自分类Dev

什么控制系统的保存对话框和文件选择器对话框?

来自分类Dev

将值从文件选择器设置为调用它的对话框

来自分类Dev

无法从文件选择器中获取所选文件的名称

来自分类Dev

谷歌选择器并下载所选文件

来自分类Dev

Intellij Idea永远需要在“文件/文件夹选择器”对话框中显示文件夹

来自分类Dev

Internet Explorer中的文件选择器对话框块脚本

来自分类Dev

Windows批处理脚本中的文件夹选择器对话框

来自分类Dev

使用Dropbox API JS选择器时如何显示所选文件名

来自分类Dev

单击输入框以显示打开文件对话框,但不单击选择文件按钮

来自分类Dev

如何为多个文件夹(或文件)选择器配置对话框?

来自分类Dev

打开文件对话框中的文件过滤器

来自分类Dev

Python GTK + 3仅弹出一个文件选择器对话框?

来自分类Dev

有什么方法可以使文件选择器对话框更加实用?

来自分类Dev

有什么方法可以使文件选择器对话框更加实用?

来自分类Dev

如何在对话框的文件和目录选择器中导航?

来自分类Dev

如何使用Android Studio创建文件选择器对话框

来自分类Dev

代号一个文件选择器对话框

Related 相关文章

  1. 1

    在javascript中打开文件对话框,并获取所选文件的值

  2. 2

    如果“ display:none”,则无法在android webview中打开文件选择器对话框

  3. 3

    从文件选择器对话框中删除文件或打开文件会导致 React 组件卸载

  4. 4

    Android多文件选择器/选择器对话框

  5. 5

    在文件选择器对话框中显示缩略图

  6. 6

    Firefox在文件选择器对话框中不显示缩略图(gtkfilechooser + libegg)

  7. 7

    在文件选择器对话框中显示缩略图

  8. 8

    即使在选择文件 c# 后,打开文件对话框仍然显示

  9. 9

    硒关闭文件选择器对话框

  10. 10

    重新打开对话框时,日期选择器对话框未显示所选日期

  11. 11

    Outlook VBA在对话框中添加所选文件的超链接

  12. 12

    Python GTK:确认覆盖对话框阻止文件选择器对话框

  13. 13

    什么控制系统的保存对话框和文件选择器对话框?

  14. 14

    将值从文件选择器设置为调用它的对话框

  15. 15

    无法从文件选择器中获取所选文件的名称

  16. 16

    谷歌选择器并下载所选文件

  17. 17

    Intellij Idea永远需要在“文件/文件夹选择器”对话框中显示文件夹

  18. 18

    Internet Explorer中的文件选择器对话框块脚本

  19. 19

    Windows批处理脚本中的文件夹选择器对话框

  20. 20

    使用Dropbox API JS选择器时如何显示所选文件名

  21. 21

    单击输入框以显示打开文件对话框,但不单击选择文件按钮

  22. 22

    如何为多个文件夹(或文件)选择器配置对话框?

  23. 23

    打开文件对话框中的文件过滤器

  24. 24

    Python GTK + 3仅弹出一个文件选择器对话框?

  25. 25

    有什么方法可以使文件选择器对话框更加实用?

  26. 26

    有什么方法可以使文件选择器对话框更加实用?

  27. 27

    如何在对话框的文件和目录选择器中导航?

  28. 28

    如何使用Android Studio创建文件选择器对话框

  29. 29

    代号一个文件选择器对话框

热门标签

归档