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

Pau*_*son 6 java swing uimanager windows-7

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

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

另外,BTW,你在设置外观之前或之后放置了UIManager.put调用吗?或者不重要吗?


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

UIManager属性如何与Win7主题相关,并且由于我无法预测用户将使用哪些主题,如何控制窗格标题外观?


我将以另一种方式提出这个问题:为什么我不能改变应用程序显示面板中每个像素的颜色?是否有一个低于 UIManager 的级别,这似乎在你允许修改的内容中非常有限......?

mKo*_*bel 5

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

1)创建Un_decorated JFrame/JDialog

2)对北possition你可以把JPanelGradientPaint来自传来,模拟容器Win7

3)并将3 JButtons与Icon 放在JPanel一起GradientPaint

4)JButtons向GUI 添加所需的事件,并为GUI设置更好的输出JButtons#setContentAreaFilled(false)


And*_*w S 3

使用该setUndecorated(false)方法关闭主机平台的窗口装饰。

下面是一个示例,虽然它是针对 Mac OS 平台的,但它可以为您提供一个起点。 在半透明框架/面板/组件上重新绘制。