首页 > 解决方案 > 使用 Netbeans 平台应用程序 (FlatLaF) 设置标题栏的颜色

问题描述

我目前正在开发一个使用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 (darkmode)时TitlePane的颜色发生了变化,但可以更改颜色。

如果有人知道需要更改哪些属性才能更改 Netbeans 平台应用程序中标题窗格的颜色,我将非常感谢任何形式的帮助!

标签: javauser-interfacenetbeans-platformuimanagerflatlaf

解决方案


我相信我找到了罪魁祸首。在最近发布的 Netbeans 中,引入了为 FlatLaF 设置“TitlePane.unifiedBackground”的选项。但是在设置时UIManager.put("TitlePane.unifiedBackground", true);会出现上述问题,并且我实际上无法设置 TitlePane 的背景颜色。

正如在updateUnifiedBackground()类的方法FlatLFCustomshttps://github.com/apache/netbeans/blob/12.4/platform/onswing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLFCustoms.java)中看到的Netbeans源码,titlePane的颜色应该通过调整属性“Panel.background”来设置。然而,这似乎不能正常工作。

一种解决方法似乎是设置UIManager.put("TitlePane.unifiedBackground", false);然后将“TitlePane.background”设置为所需的颜色。如果您仍然想要统一的 TitlePane 外观,您可以通过将“Panel.background”和“Toolbar.background”设置为相同的颜色来实现。

实际上,这看起来与为 TitlePane 设置统一背景相同,只是现在您可以更改颜色。希望这对偶然发现相同问题的人有所帮助。


推荐阅读