我正在尝试为需要用户注意的选项卡创建带有标记的JTabbedPane。它将用于设置对话框。
这意味着背景颜色应该可以动态更改,而与选项卡选择无关。
元素的验证工作正常(例如,无效文本字段周围的红色边框),但我无法通过设置背景颜色来标记包含选项卡。找到包含选项卡并传播无效状态的代码已准备就绪。唯一的事情是:setBackgroundAt(index, Color);
根本没有效果。
我已经确认已达到该语句且索引正确。
但没有任何反应。 repaint();
和SwingUtilities.updateComponentTreeUI(this);
都没有帮助。
我找到了几个人给不同标签提供不同颜色的例子。这是我开始使用的那个:Colorize a tab in a JTabbedPane using java swing
但我找到的所有示例都静态设置了颜色(在显示JFrame之前),更糟糕的是,所选标签的背景颜色消失了。
由于我的应用程序还允许选择外观和感觉,解决方案应该是L& F独立。
BTW:标签周围的红色边框也可以是背景。
答案 0 :(得分:2)
虽然“解决方案应该是L& F独立的”,但选项卡式窗格UI委托会对选项卡的外观施加相当大的控制。给定的代表可以自由地忽略您的颜色设置,而不是自己的颜色设置。由于目标是“需要用户注意的标签的标记”,因此还要考虑tutorial中显示的自定义组件或图标。特别是,TabComponentsDemo
说明了向标签添加交互式组件,此example说明了动画图标。