如何在Swing应用程序中以Java获得macOS Mojave Style Dark Mode?

2022-09-04 20:50:11

我想知道是否有某种方法可以在Java的摇摆应用程序中获得macOS Mojave风格的黑暗模式?

我想在Java Swing应用程序中的JFrame上获得macOS Mojave Style Dark Mode。

请让我知道。

谢谢

阿斯拉尔·巴希尔·松格


答案 1

似乎获得黑暗模式的官方解决方案是使用系统属性。在 JDK-8235363 中,这可从 JDK 14 及更高版本获得:

添加了一个新的系统属性:用于设置整个 Java 应用程序的外观。"apple.awt.application.appearance"

若要获得最佳用户体验,可能应始终使用该值来匹配用户的首选设置:system

-Dapple.awt.application.appearance=system

当然,测试并确保你没有自己定义的颜色,这使得文本或组件不可见或难以通过这种配色方案看到。


PS:如果您还在寻找与本机macOS黑暗模式相匹配的Swing外观和感觉,请查看VAqua。免责声明:我从未在实际应用程序中使用它,但它看起来非常好,并使用本机渲染来看起来像真实的东西。


答案 2

要获取深色标题栏,请使用选项启动。例如:-NSRequiresAquaSystemAppearance False

java -jar myapp.jar -NSRequiresAquaSystemAppearance False
       #  ("false", "no" or "0" will also work)

注意:许多解决方案建议编辑文件,但这些解决方案对我不起作用。Info.plist

警告:某些框架可能会因强制执行此操作而崩溃,因此请谨慎使用。

enter image description here