3 回答
TA贡献1884条经验 获得超4个赞
似乎获得黑暗模式的官方解决方案是使用系统属性。在 JDK-8235363 中,这可从 JDK 14 及更高版本获得:
添加了一个新的系统属性:用于设置整个 Java 应用程序的外观。
"apple.awt.application.appearance"
如果未设置值,则将使用浅色模式
如果设置了值,则将使用macOS的当前外观
"system"
其他可能的值是(与浅色相同)或(请求深色)请参阅 https://developer.apple.com/documentation/appkit/nsappearancenameaqua?language=objc
"NSAppearanceNameAqua"
"NSAppearanceNameDarkAqua"
如果设置的值不正确,则将使用浅色模式
若要获得最佳用户体验,可能应始终使用该值来匹配用户的首选设置:system
-Dapple.awt.application.appearance=system
当然,测试并确保你没有自己定义的颜色,这使得文本或组件不可见或难以通过这种配色方案看到。
PS:如果您还在寻找与本机macOS黑暗模式相匹配的Swing外观和感觉,请查看VAqua。免责声明:我从未在实际应用程序中使用它,但它看起来非常好,并使用本机渲染来看起来像真实的东西。
TA贡献1784条经验 获得超8个赞
要获取深色标题栏,请使用选项启动。例如:-NSRequiresAquaSystemAppearance False
java -jar myapp.jar -NSRequiresAquaSystemAppearance False # ("false", "no" or "0" will also work)
注意:许多解决方案建议编辑文件,但这些解决方案对我不起作用。Info.plist
警告:某些框架可能会因强制执行此操作而崩溃,因此请谨慎使用。
TA贡献1772条经验 获得超6个赞
我想,你可能会尝试使用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!
}
添加回答
举报