我正在尝试为JTabbedPane的标签设置背景颜色:
这有效:
tabbedPane.setBackgroundAt(idx, Color.GREEN);
但是,它仅适用于取消选择的选项卡。有没有办法为活动标签执行此操作?我不想为此提供全新的用户界面。
答案 0 :(得分:-1)
我认为很明显你发现了一个错误。我没有在Java Bug数据库中看到任何解决此问题的内容,但我看到了一些与Java 9修复的JTabbedPane背景颜色相关的其他错误(如http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8078269)。
这不是很好,因为修改UI默认值意味着它会影响所有后来创建的JTabbedPanes,但它确实有效:
Runnable tabColorUpdater = new Runnable() {
@Override
public void run() {
UIManager.put("TabbedPane.selected",
tabbedPane.getBackgroundAt(tabbedPane.getSelectedIndex()));
tabbedPane.updateUI();
}
};
tabColorUpdater.run();
tabbedPane.addChangeListener(
e -> EventQueue.invokeLater(tabColorUpdater));