在MacOS X上使用FileDialog而不是JFileChooser来获取文件AND目录

iDe*_*Dev 5 java macos swing jfilechooser mac-app-store

这是我的问题。我有一个在MacOS X上运行的Java应用程序。现在,我正在尝试在Mac App Store上使该应用程序可用。不幸的是,Apple始终拒绝我的应用程序,因为我没有使用本机FileDialog访问文件和目录。在某些情况下,用户必须选择其他目录中的文件。这是我尝试创建目录选择器的方法:

// Go in directory chooser mode
System.setProperty("apple.awt.fileDialogForDirectories", "true");
FileDialog dialog = new FileDialog(tamaggoApp.getFrame());
dialog.setDirectory(defaultDir);
dialog.setVisible(true);

// Set back the property to file chooser.
System.setProperty("apple.awt.fileDialogForDirectories", "false");
Run Code Online (Sandbox Code Playgroud)

不幸的是,它对我不起作用。似乎必须在main()方法中设置此属性,因此您无法在文件和目录选择之间切换。不能使用Swing JFileChooser,因为Apple会拒绝它(我尝试过)。

iDe*_*Dev 0

我终于发现它在jdk1.7u21下一直可以工作。问题是您可以选择目录,但仍然可以选择文件。我必须找到一种方法来避免这种情况,当我在论坛中查找时,这似乎并不容易。