【问题标题】:JFileChooser click programmatically on openJFileChooser 在打开时以编程方式单击
【发布时间】:2019-01-16 18:07:36
【问题描述】:

我有以下代码来打开一个 JFilechooser

chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setAcceptAllFileFilterUsed(false);
chooser.showOpenDialog(null);
String path = chooser.getSelectedFile().getPath();

我想要做的是以编程方式关闭此对话框。我看到了打开按钮,但是如何以编程方式“按下”它?

【问题讨论】:

  • 初学者需要使用ActionListener。
  • 什么意思?我知道 actionlistener 是什么,但你所说的“初学者”是什么意思?
  • 我的意思是你需要创建一个 ActionListener 变量并使用它来检测鼠标点击打开选项。
  • 这就是重点,我不想用鼠标点击按钮,但我想用例如 doClick() 函数自动完成
  • showOpenDialog 方法会阻止程序,直到用户选择某些内容并单击打开或取消。在用户执行其中一件事情之前,之后的所有事情都不会被执行。

标签: java jfilechooser


【解决方案1】:

这将模拟用户选择和打开文件:

JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setAcceptAllFileFilterUsed(false);
new Thread(new Runnable() {
    @Override
    public void run() {
        try {
            Thread.sleep(100);
        } catch (InterruptedException ex) {
            Logger.getLogger(YourApplication.class.getName()).log(Level.SEVERE, null, ex);
        }
        chooser.setSelectedFile(new File("/your/file/path")));
        chooser.approveSelection();
    }
}).start();
chooser.showOpenDialog(null);
String path = chooser.getSelectedFile().getPath();

Thread.sleep(100) 很难看,但必须在其中,否则在调用 approveSelection 时,JFileChooser 尚未打开。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多