java - 在 Java Swing 中更改面板标题的颜色

标签 java swing windows-7 uimanager

我正在使用 144 dpi 纯平显示器在 Win7 上运行 Swing 应用程序。我的框架、选项面板等的标题都在透明背景上显示为白色(Aero?)。我总体上喜欢 Aero,但是白色标题很难读!我已经遍历了所有我能想到的 UIManager 属性,但它们似乎都没有任何效果。在 UIManager 之下是否有我可以到达的级别 - 并且最好对我的应用程序进行一次更改,因为我不想为每个选项 Pane 调用添加代码。也许我遗漏了一些非常基本的东西……但我们将不胜感激!

我也想更改标题字体,但这并不紧急!

此外,顺便说一句,您是在设置外观之前还是之后调用 UIManager.put?还是不重要?


更多信息:我更改了我的 Win7 个性化设置,使用名为 Canada 的 Aero 主题,标题现在为黑色,使用合理的字体。所以我的问题变成了:

UIManager 属性如何与 Win7 主题相关,并且鉴于我无法预测用户将使用什么主题,我如何控制 Pane 标题的外观?


我打算换一种方式提出这个问题:为什么我不能更改应用程序显示面板中每个像素的颜色?在 UIManager 之下是否有一个级别,它似乎在允许修改的内容方面非常有限...?

最佳答案

这种方式会有点复杂,但是如果你需要自己的完全控制的Container,

1) 创建 Un_decorated JFrame/JDialog

2) 在 NORTH 位置,你可以将 JPanelGradientPaint 放在一起,模拟来自 Win7

的容器

3) 并将 3 个带有 Icon 的 JButtons 放入带有 GradientPaint

JPanel

4) 将所需的事件添加到 JButtons 并且为了更好地输出到 GUI 将设置 JButtons#setContentAreaFilled(false)

关于java - 在 Java Swing 中更改面板标题的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8286747/

相关文章:

java - 如何向 JPanel 添加背景,然后在该 JPanel 上添加 JButton

java - 在 JButton 单击上显示 JLabel

Python 在 Windows 8.1 64 位上错误地检测到 32 位系统

c - Win7 中的 SendMessageA 和 SendMessageW 从 WinXP 迁移而来

C# 获取/设置 BIOS 设置?

java - 如何在 ImageView android上绘制文本

java - Java编译器说找不到符号。为什么?

java - 如何在Spring Boot数据休息中禁用hal浏览器

Java Swing 复杂表单 - SpringLayout

java - 代码没有按预期执行?