使用 Netbeans 平台应用程序 (FlatLaF) 设置标题栏的颜色
Setting the Color of the Title Bar with Netbeans Platform Application (FlatLaF)
我目前正在开发使用 com.formdev.flatlaf.FlatLightLaf 作为外观的 Netbeans 平台应用程序。该应用程序在 Windows 10 下使用 Java 11 和 运行。
我现在想更改 TitlePane 的颜色。可以通过更改 UIManager 中的属性来全局更改整个应用程序特定元素(如 jPanel 等)的颜色。
因此,我尝试更改 UIManager.getDefaults()
和 UIManager.getLookAndFeelDefaults()
中的许多 background-color 特定设置。例如,将 TitlePane.background 属性 更改为 UIManager.put("TitlePane.background", new ColorUIResource(100, 100, 100));
。
然而,我更改的数十个属性中的 none 完全有效。
虽然使用 com.formdev.flatlaf.FlatDarkLaf(暗模式).
如果有人知道需要更改哪些属性才能更改 Netbeans 平台应用程序中标题窗格的颜色,我将非常感谢任何形式的帮助!
我相信我找到了罪魁祸首。
在最近发布的 Netbeans 中,引入了为 FlatLaF 设置“TitlePane.unifiedBackground”的选项。
但是设置UIManager.put("TitlePane.unifiedBackground", true);
时会出现上述问题,我实际上无法设置TitlePane的背景颜色。
如Netbeans源码中classFlatLFCustoms
(https://github.com/apache/netbeans/blob/12.4/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLFCustoms.java)的方法updateUnifiedBackground()
所示,titlePane的颜色应该通过调整属性“Panel.background”。
然而,这似乎无法正常工作。
解决方法似乎是设置 UIManager.put("TitlePane.unifiedBackground", false);
,然后将“TitlePane.background”设置为所需的颜色。
如果您仍然想要统一的 TitlePane 外观,您可以通过将“Panel.background”和“Toolbar.background”设置为相同的颜色来实现。
实际上,这看起来与为 TitlePane 设置 unifiedBackground 相同,只是现在您可以更改颜色。
希望这对遇到同样问题的人有所帮助。
使用此代码:-
JFrame.setDefaultLookAndFeelDecorated(true);
frame.getRootPane().putClientProperty("JRootPane.titleBarBackground", new Color(23,180,252));
frame.getRootPane().putClientProperty("JRootPane.titleBarForeground", Color.white);
我目前正在开发使用 com.formdev.flatlaf.FlatLightLaf 作为外观的 Netbeans 平台应用程序。该应用程序在 Windows 10 下使用 Java 11 和 运行。
我现在想更改 TitlePane 的颜色。可以通过更改 UIManager 中的属性来全局更改整个应用程序特定元素(如 jPanel 等)的颜色。
因此,我尝试更改 UIManager.getDefaults()
和 UIManager.getLookAndFeelDefaults()
中的许多 background-color 特定设置。例如,将 TitlePane.background 属性 更改为 UIManager.put("TitlePane.background", new ColorUIResource(100, 100, 100));
。
然而,我更改的数十个属性中的 none 完全有效。
虽然使用 com.formdev.flatlaf.FlatDarkLaf(暗模式).
如果有人知道需要更改哪些属性才能更改 Netbeans 平台应用程序中标题窗格的颜色,我将非常感谢任何形式的帮助!
我相信我找到了罪魁祸首。
在最近发布的 Netbeans 中,引入了为 FlatLaF 设置“TitlePane.unifiedBackground”的选项。
但是设置UIManager.put("TitlePane.unifiedBackground", true);
时会出现上述问题,我实际上无法设置TitlePane的背景颜色。
如Netbeans源码中classFlatLFCustoms
(https://github.com/apache/netbeans/blob/12.4/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLFCustoms.java)的方法updateUnifiedBackground()
所示,titlePane的颜色应该通过调整属性“Panel.background”。
然而,这似乎无法正常工作。
解决方法似乎是设置 UIManager.put("TitlePane.unifiedBackground", false);
,然后将“TitlePane.background”设置为所需的颜色。
如果您仍然想要统一的 TitlePane 外观,您可以通过将“Panel.background”和“Toolbar.background”设置为相同的颜色来实现。
实际上,这看起来与为 TitlePane 设置 unifiedBackground 相同,只是现在您可以更改颜色。 希望这对遇到同样问题的人有所帮助。
使用此代码:-
JFrame.setDefaultLookAndFeelDecorated(true);
frame.getRootPane().putClientProperty("JRootPane.titleBarBackground", new Color(23,180,252));
frame.getRootPane().putClientProperty("JRootPane.titleBarForeground", Color.white);