Java JFilechooser外观
在我的swing应用程序中,我将UI外观设置为:Java JFilechooser外观,java,macos,swing,look-and-feel,jfilechooser,Java,Macos,Swing,Look And Feel,Jfilechooser,在我的swing应用程序中,我将UI外观设置为: UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 而且它在Windows上运行良好。在应用程序内部,用户必须使用JFileChooser选择文件。windows上的JFileChooser外观也是本机外观。但不是在Mac上。 JFileChooser面板的屏幕截图: 但相反,我更喜欢这样的东西:(这是取自gmail中的上传选项) 我应该将UIManage
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
而且它在Windows上运行良好。在应用程序内部,用户必须使用JFileChooser
选择文件。windows上的JFileChooser
外观也是本机外观。但不是在Mac上。
JFileChooser面板的屏幕截图:
但相反,我更喜欢这样的东西:(这是取自gmail中的上传选项)
我应该将UIManager更改为什么或其他内容???针对Windows、Linux和Mac的文件选择器实现对于任何操作系统都不是100%正确的 不幸的是,如果您真的想要这样做,您需要寻找JFileChooser的替代品,或者您需要编写自己的外观和费用
Java很难跟上操作系统的变化。在MacOS上,您可以使用与您描述的类似的。缺点是它的可配置性差得多。有几种备选方案包括:
,如图所示java.awt.FileDialog
- 显示一个自定义的
选择器ui
- 完全定制的实现;显示了几种变化
从Java 6迁移到Java 8时,我遇到了很多麻烦,因为我的Java应用程序需要打开一些专有的文件包 FileDialog仍然提供了更好的外观,但将捆绑文件视为目录。第一个修复方法是将FileDialog设置为选择目录,这仍然允许在文件包内导航,但也允许选择整个文件包
System.setProperty("apple.awt.fileDialogForDirectories", "true");
我对这个解决方案不太满意,我尝试了其他选项,包括看起来非常棒但有时没有向我显示所有UI元素(一些JTree在启动时被隐藏,JFileChooser看起来不错,但仍然没有在侧边栏中向我显示网络驱动器)
最后,我找到了一个简单的属性,当设置该属性时,它允许使用FileDialog,就像在Java6下一样。当然,如果我们想选择文件而不是目录,必须删除上面的行
System.setProperty("apple.awt.use-file-dialog-packages", "true");
在一个旧的中找到了这个另请参见+1以获得漂亮的屏幕截图(没有Mac电脑来制作;-))