【发布时间】:2021-10-18 07:45:18
【问题描述】:
我目前正在开发一个使用 com.formdev.flatlaf.FlatLightLaf 作为外观的 Netbeans 平台应用程序。该应用程序使用 Java 11 并在 Windows 10 下运行。
我现在想更改 TitlePane 的颜色。可以通过更改 UIManager 中的属性来全局更改整个应用程序的特定元素(如 jPanel 等)的颜色。
所以我尝试从UIManager.getDefaults() 和UIManager.getLookAndFeelDefaults() 更改许多背景色特定设置。例如,将 TitlePane.background 属性更改为 UIManager.put("TitlePane.background", new ColorUIResource(100, 100, 100));。
然而,我改变的几十个属性都没有工作。
在使用 com.formdev.flatlaf.FlatDarkLaf(暗模式)时,TitlePane 的颜色发生了变化。
如果有人知道需要更改哪些属性才能更改 Netbeans 平台应用程序中标题窗格的颜色,我将非常感谢任何形式的帮助!
【问题讨论】:
-
已经这样做了。 “不可能”的公认答案是错误的。设置
activeCaption或activeTitleBackground对我没有任何帮助。而且我认为,当适当的代码已经存在并被 Netbeans 中包含的 LaF 使用时,编写对 titleBar 的访问的代码是多余的。所以我认为这个问题可能取决于我使用 Netbeans 平台和/或 FlatLaF。 -
你检查过 FlatLaf 的来源:github.com/JFormDesigner/FlatLaf/blob/main/flatlaf-core/src/… 吗?
-
您也应该看看 Netbeans 源代码 (github.com/apache/netbeans/tree/12.4/platform/…),因为 FlatLaf 是预先集成的,我认为 Netbeans 有自己的特定设置。
-
感谢您的提示!在 FlatLaf 源中,titlePane 的颜色是通过“TitlePane.background”设置的。可悲的是,尽管这在这里不起作用。我还检查了 Netbeans (FlatLaF) 代码,在
FlatLFCustoms类中,updateUnifiedBackground方法似乎通过检查“Panel.background”并将该颜色设置为统一背景来做到这一点。尽管此选项总体上改变了很多外观(所有 jPanels 背景颜色都受到影响),但 TitleBar 本身保持不变。
标签: java user-interface netbeans-platform uimanager flatlaf