如何更改JTabbedPane的背景颜色在运行?(How to change background

2019-08-01 23:49发布

我有这种变化的背景颜色的例子的创立负载JTabbedPane使用任何setBackgroundAt()UIManager.put("JTabbedPane...")

不过,我想创建一个onclick上,当你选择它,回来时,你不选择它默认改变背景颜色为绿色复选框事件。

我一直没能进行使用上述方法的工作。

有任何想法吗?

PS:我可以通过改变前景色setForgroundAt()而不是由于某种原因,背景

Answer 1:

的LAF可以随意忽略的某些自定义设置(视只不知道?)JComponent的特性, 如记录网络连接:

它是由外观和感觉,以遵守此属性,有的可能选择忽略它。

所以结果是高度LAF依赖性(WORKSFORME在金属与母题,而不是在雨云/运)周围没有简单而安全的方法(除了调整UI委托,这是不是一个真正的选择)



Answer 2:

重写paintComponent和改变颜色出现。

@Override
public void paintComponent(Graphics g) {
    g.setColor(new Color(color));
    g.fillRect(0, 0, getWidth(), getHeight());


Answer 3:

请尝试以下设置每个标签面板的背景/前景颜色后。 这应该使标签在顶部的颜色作为JTabbedPane的(myTabs)面板相同。 这对我的作品有灵气。

for (int c = 0; c < myTabs.getComponentCount(); ++c)
{
  myTabs.setBackgroundAt(c, myTabs.getComponentAt(c).getBackground());
  myTabs.setForegroundAt(c, myTabs.getComponentAt(c).getForeground());
}

myTabs.setOpaque(true);
myTabs.setUI(new BasicTabbedPaneUI()); 


文章来源: How to change background color of JTabbedPane in runtime?