1

我通过阅读

System.setProperty("apple.awt.fileDialogForDirectories", "true");

用户可以通过 a 选择目录FileDialog,现在FileDialog唤起本机文件选择器,这正是我想要的,但在上面的行中显示:apple.awt...,这是否意味着此选项仅适用于 Mac OSX?

if(no) {
    great
} else {
    what can i do to implement this on other operating systems than?
}

谢谢你的帮助!

PS:我知道很多人建议使用 JFileChooser,但在这种情况下,我更喜欢 FileDialog,除非那是不可能的

4

2 回答 2

1

这正是你所担心的。AWT 在下面使用了本机库。OSX 具有仅查找目录的功能,Windows 没有。所以你唯一的改变是使用一个不基于 AWT 的对话框,即 Swing 或 SWT。

您可以定义具有平台特定实现的接口。这在 OSX 上提供了一个漂亮的对话框,并且在其他平台上也可以使用。我就是做这个的。

于 2010-12-20T15:45:50.490 回答
0

据我所知,FileDialog 不支持(代码内)在所有平台上使用目录对话框。

您已经提到过 Swing 的 JFileChooser,但您可能希望为您的小部件考虑 SWT。

SWT是 Eclipse(最初是 IBM)的项目,用于创建更新的 Java GUI 工具包,该工具包在可用时仍使用本机小部件。

SWT 的主要缺点是它不是标准 Java 发行版的一部分……而且每个平台都有自己的 SWT jar 文件。

顺便说一句,SWT 有一个DirectoryDialog小部件。

于 2010-12-20T15:11:42.680 回答