2017-08-30 114 views
0

我正在运行一个分析数据的Java程序,我写的。当我尝试加载数据文件时,JFileChooser将照常打开,但我无法双击该文件夹来更改工作目录。任何人遇到这个问题,是否有解决方法?我不确定它是java,eclipse,mac还是组合问题。JFileChooser无法识别文件夹,无法更改目录

我运行在Mac 10.12.6(塞拉利昂)的Java 1.8.0_121

这里蚀(氧)是主要的一个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"); 
    } 

} 

谢谢

+0

仅供参考 - 已检查你的代码,它为我工作在Windows上。你也可以尝试玩一下外观和感觉像[这里](https:// stackoverflow。com/questions/18642158/why-does-jfilechooser-showopendialog-hang-on-mac-osx) –

+0

还有一个[here](http://supunmali-myexperience.blogspot.com.by/2012/10/issue- jfilechooser-on-mac-os-x.html) –

+0

目录权限如何? –

回答

0

你怎么样,HowYaDoing?

我有同样的问题,我的背景略有不同。

我在双机启动Windows机器上开发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是拥有广泛用户群的完善应用程序。我希望用户抱怨这个问题,但到目前为止Google没有发现任何问题。

我可以重现改变L & F到X平台解决了灰色打开按钮的问题,并且双击子目录仍然没有做任何事情。

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

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

因此,升级到macOS 10.13可以解决您的问题。我也怀疑必须有另一种解决方案,否则我无法解释为什么没有更多关于这个问题的抱怨。

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

干杯,

亨克

+0

我工作的IT员工正在计划升级到10.13。我会让你知道它是否有效。与此同时,我已经切换到javafx。 – HowYaDoing