我通过
读到了System.setProperty("apple.awt.fileDialogForDirectories", "true");
用户可以通过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,除非那是不可能的答案 0 :(得分:1)
正如你所担心的那样。 AWT使用了下面的本机库。 OSX具有仅查找目录的功能,而Windows则不具备。 所以你改变的只是使用一个不基于AWT的对话框,即Swing或SWT。
您可以使用平台特定实现来定义接口。这为OSX提供了一个漂亮的对话框,并且可以在其他平台上运行。这就是我的工作。
答案 1 :(得分:0)
据我所知,FileDialog不支持(在代码中)在所有平台上使用目录对话框。
你已经提到过Swing的JFileChooser,但你可能想要为你的小部件考虑SWT。
SWT是Eclipse(最初是IBM)的项目,用于创建更新的Java GUI Toolkit,当它们可用时仍然使用本机窗口小部件。
SWT的主要缺点是它不是标准Java发行版的一部分......并且每个平台都有自己的SWT jar文件。
顺便提一下,SWT有一个DirectoryDialog
小部件。