我想知道是否可以通过Java的摆动应用程序获得macOS Mojave风格的暗模式?
我想在Java Swing应用程序的JFrame上获得macOS Mojave风格暗模式。
请让我知道。
谢谢
Asrar Bashir Sunge
答案 0 :(得分:4)
似乎获得暗模式的官方解决方案是使用系统属性。从 JDK-8235363 开始,JDK 14 及更高版本提供此功能:
<块引用>添加了一个新的系统属性:"apple.awt.application.appearance"
用于设置整个 Java 应用程序的外观。
"system"
值,则将使用 macOS 的当前外观"NSAppearanceNameAqua"
(与 light 相同)或 "NSAppearanceNameDarkAqua"
(请求黑暗)参见 https://developer.apple.com/documentation/appkit/nsappearancenameaqua?language=objc为了获得最佳用户体验,您可能应该始终使用 system
值,以匹配用户的首选设置:
-Dapple.awt.application.appearance=system
当然还要测试并确保您没有使用自定义颜色使文本或组件在此配色方案中不可见或难以看到。
PS:如果您还在寻找与原生 macOS 暗模式匹配的 Swing 外观和感觉,请查看 VAqua。免责声明:我从未在真正的应用程序中使用过它,但它看起来非常好,并且使用原生渲染看起来就像真实的东西。
答案 1 :(得分:1)
我想,您可以尝试使用Darcula:
https://github.com/Revivius/nb-darcula
https://github.com/bulenkov/Darcula
import com.bulenkov.darcula.*;
...
...
BasicLookAndFeel darculaLookAndFeel = new DarculaLaf();
try {
UIManager.setLookAndFeel(darculaLookAndFeel);
} catch (UnsupportedLookAndFeelException ex) {
// ups!
}
答案 2 :(得分:0)
要获取深色的标题栏,请使用选项-NSRequiresAquaSystemAppearance False
启动。例如:
java -jar myapp.jar -NSRequiresAquaSystemAppearance False
# ("false", "no" or "0" will also work)
注意:许多解决方案建议编辑Info.plist
文件,但这些解决方案对我不起作用。
警告:某些框架can crash as a result of forcing this请谨慎使用。