在我的swing应用程序中,我将UI外观设置为:
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
它在Windows上运行良好。在应用程序内部,用户必须使用JFileChooser
选择文件。 Windows上的JFileChooser
外观再次是本机外观。但不是在Mac上。
JFileChooser Panel的屏幕截图:
但相反,我更喜欢这样的东西:(这个是从gmail的上传选项中获取的)
我应该将UIManager更改为什么?
答案 0 :(得分:4)
答案 1 :(得分:3)
在MacOS上,您可以使用看起来像您所描述的FileDialog
。缺点是它的可配置性要低得多。
答案 2 :(得分:1)
Windows,Linux和Mac的文件选择器实现并非100%适用于任何操作系统
不幸的是,如果你真的想要这个,你需要寻找JFileChooser的替代品,或者你需要写自己的外观和费用。
Java无法跟上操作系统的变化。
答案 3 :(得分:1)
从Java 6迁移到Java 8时遇到了很多麻烦,因为必须使用Java应用程序打开一些专有文件包。
FileDialog仍然提供更好的LookAndFeel,但是将捆绑的文件视为目录。对此的第一个解决方法是将FileDialog设置为选择目录,该目录仍然可以在文件捆绑包中进行导航,但也可以选择整个捆绑包。
System.setProperty("apple.awt.fileDialogForDirectories", "true");
对该解决方案感到不满意,我尝试了其他选择,包括VAqua LookAndFeel for macOS看起来不错,但有时无法显示所有UI元素(某些JTree在启动时被隐藏了,而JFileChooser确实很棒,但仍然没有在边栏中显示网络驱动器。
最后,我发现一个简单的属性-设置后-允许使用Java 6下的FileDialog。当然,如果我们要选择文件而不是目录,则必须删除上面的行。
System.setProperty("apple.awt.use-file-dialog-packages", "true");
中找到了这个