setBisible(true)之后的JTabbedPane.setBackgroundAt(index,Color)无效

时间:2013-11-12 20:57:51

标签: java swing background jtabbedpane

我正在尝试为需要用户注意的选项卡创建带有标记的JTabbedPane。它将用于设置对话框。
这意味着背景颜色应该可以动态更改,而与选项卡选择无关。

元素的验证工作正常(例如,无效文本字段周围的红色边框),但我无法通过设置背景颜色来标记包含选项卡。找到包含选项卡并传播无效状态的代码已准备就绪。唯一的事情是:setBackgroundAt(index, Color);根本没有效果。
我已经确认已达到该语句且索引正确。 但没有任何反应。 repaint();SwingUtilities.updateComponentTreeUI(this);都没有帮助。

我找到了几个人给不同标签提供不同颜色的例子。这是我开始使用的那个:Colorize a tab in a JTabbedPane using java swing

但我找到的所有示例都静态设置了颜色(在显示JFrame之前),更糟糕的是,所选标签的背景颜色消失了。

由于我的应用程序还允许选择外观和感觉,解决方案应该是L& F独立。

BTW:标签周围的红色边框也可以是背景。

1 个答案:

答案 0 :(得分:2)

虽然“解决方案应该是L& F独立的”,但选项卡式窗格UI委托会对选项卡的外观施加相当大的控制。给定的代表可以自由地忽略您的颜色设置,而不是自己的颜色设置。由于目标是“需要用户注意的标签的标记”,因此还要考虑tutorial中显示的自定义组件或图标。特别是,TabComponentsDemo说明了向标签添加交互式组件,此example说明了动画图标。