繁体   English   中英

如何在 Swing 应用程序中使用 Java 获得 macOS Mojave 风格的暗模式?

[英]How to get macOS Mojave Style Dark Mode in Java in a Swing Application?

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

我想在 Java Swing 应用程序的 JFrame 上获得 macOS Mojave 风格的暗模式。

请告诉我。

谢谢

阿斯拉·巴希尔·桑格

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

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

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

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

在此处输入图片说明

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

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

为了获得最佳用户体验,您可能应该始终使用system值,以匹配用户的首选设置:

-Dapple.awt.application.appearance=system

当然,测试并确保您没有自定义颜色,使用此配色方案使文本或组件不可见或难以看到。


PS:如果您还在寻找与原生 macOS 暗模式匹配的 Swing Look and Feel,请查看VAqua 免责声明:我从未在真正的应用程序中使用过它,但它看起来非常好,并且使用原生渲染看起来就像真实的东西。

我想,您可以尝试使用 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!
}

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM