1
のタブの背景を設定:私はのJTabbedPaneのタブに背景色を設定しようとしていますJTabbedPaneの
これは動作します:
tabbedPane.setBackgroundAt(idx, Color.GREEN);
はしかし、それが唯一の選択を解除し、タブのために動作します。アクティブなタブでもこれを行う方法はありますか?私はこれのためにまったく新しいUIを提供したくありません。
のタブの背景を設定:私はのJTabbedPaneのタブに背景色を設定しようとしていますJTabbedPaneの
これは動作します:
tabbedPane.setBackgroundAt(idx, Color.GREEN);
はしかし、それが唯一の選択を解除し、タブのために動作します。アクティブなタブでもこれを行う方法はありますか?私はこれのためにまったく新しいUIを提供したくありません。
あなたがバグを発見したことは明らかです。私はこれを扱うJava Bug Databaseには何も表示されませんが、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));