java - 使用 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 平台应用程序中标题窗格的颜色,我将非常感谢任何形式的帮助!
解决方案
我相信我找到了罪魁祸首。在最近发布的 Netbeans 中,引入了为 FlatLaF 设置“TitlePane.unifiedBackground”的选项。但是在设置时UIManager.put("TitlePane.unifiedBackground", true);
会出现上述问题,并且我实际上无法设置 TitlePane 的背景颜色。
正如在updateUnifiedBackground()
类的方法FlatLFCustoms
(https://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 设置统一背景相同,只是现在您可以更改颜色。希望这对偶然发现相同问题的人有所帮助。
推荐阅读
- mysql - 如何选择两个连接的列?
- php - 使用php将图像从android上传到服务器
- javascript - 如何在 Vue.js 中对数组属性的子部分进行分页?
- evernote - 如何安装 Evernote SDK for Python
- spring - 在代理/zuul-gateway 中托管 zipkin
- css - 如何对 Android 的 Chorme 说我的页面需要 @media 条件指令?
- codenameone - 代号一 - MapContainer (VIDEO) 的 addMarker(pin, coordinate) 的正确使用
- c++ - c++ socket接受,已连接客户端列表
- database - 文件在实时处理和保存方面会比数据库更好吗?
- angular - 如何更改 ngx-ui 工具提示的背景颜色?