【问题标题】:JFileChooser wont recognize a folder, cannot change directoryJFileChooser 无法识别文件夹,无法更改目录
【发布时间】:2017-10-21 05:34:50
【问题描述】:

我正在运行一个分析数据的 java 程序,这是我编写的。当我尝试加载数据文件时,JFileChooser 正常打开,但我无法双击文件夹来更改工作目录。其他人遇到这个问题,有解决方法吗?不知道是java、eclipse、mac还是组合问题。

我在 mac 10.12.6 (Sierra) java 1.8.0_121 上运行 eclipse (Oxygen)

这是 SSCE 的主要内容。

public static void main(String[] args) {

    JFileChooser fileChooser = new JFileChooser(".");
    int status = fileChooser.showOpenDialog(null);

    if (status == JFileChooser.APPROVE_OPTION) {
      File selectedFile = fileChooser.getSelectedFile();
      System.out.println(selectedFile.getParent());
      System.out.println(selectedFile.getName());
    } else if (status == JFileChooser.CANCEL_OPTION) {
      System.out.println("canceled");
    }

}

谢谢

【问题讨论】:

  • 仅供参考 - 已检查您的代码,它适用于我在 Windows 上。您也可以尝试使用here 中提到的外观和感觉吗
  • 还有一个here
  • 目录的权限呢?
  • 我不知道这是否是你的问题的原因,但它可能,而且无论如何它是极其重要的:do not run Swing code from the initial thread, always manipulate your user interface from the event dispatch thread
  • Mikita,它在 Windows 上运行良好。我试过玩 X11 服务器,java 不应该接触它(大多数时候我什至不启动 X11 服务器)。我把 L&F 改成了 X 平台的 L&F,效果好一点(有时我必须双击多次,很烦人)。

标签: java jfilechooser


【解决方案1】:

你好吗,HowYaDoing?

我有同样的问题,我的上下文略有不同。

我在双启动 Windows 和 Linux 机器上开发了一个 Freeplane 插件“GTD Sync with todo.txt”。因为我希望能够在 Mac 上测试我的插件,所以我根据this description 在 Oracle VM VirtualBox 上安装了 Mac OS X 10.11 El Capitan。

在 Mac VM 上安装 Freeplane 后,我注意到在打开和保存对话框中,我无法通过双击更改到子目录,并且打开按钮是灰色的。这些都是 JFileChooser 对话。这是非常不幸的,因为我特别想测试一个 JFileChooser 对话,它是我的附加组件的一部分。如果插件不适用于主应用,我如何可靠地测试它?

我安装了另一个我知道的 Java 应用程序:ProjectLibre。在打开文件对话框中也会出现同样的问题。 Freeplane 和 ProjectLibre 是拥有广泛用户群的成熟应用程序。我希望用户会抱怨这个问题,但到目前为止,谷歌还没有发现任何问题。

我可以重现,将 L&F 更改为 X 平台解决了灰色打开按钮的问题,并且双击子目录仍然没有任何作用。

我尝试将 Freeplane 添加到首选项 > 安全和隐私 > 隐私 > 辅助功能,但这并没有解决问题。

今天我发现 a description 用于在 VM 上安装 macOS 10.13。我尝试在这台机器上运行 Freeplane 并成功:JFileChooser 对话运行正常,您可以通过双击切换到子目录!我将使用此 VM 进行测试。

因此升级到 macOS 10.13 可以解决您的问题。我也怀疑肯定有其他解决方案,否则我无法解释为什么没有更多关于这个问题的投诉。

编辑:我在 macOS 10.12 VM 上尝试了 Freeplane,并且 JFileChooser 对话正常工作。所以它可能不是版本。我还比较了虚拟机之间的安全设置和文件权限。我找不到任何区别。

干杯,

亨克

【讨论】:

  • 我工作的 IT 人员正在计划升级到 10.13。我会让你知道它是否有效。与此同时,我已经切换到 javafx。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-13
  • 2021-07-01
  • 1970-01-01
相关资源
最近更新 更多