JTabbedPaneのタブエリア背景色などをテスト
Total: 8235
, Today: 2
, Yesterday: 2
Posted by aterai at
Last-modified:
概要
MetalLookAndFeel
のJTabbedPane
で、タブエリアの背景色などを変更するテストをしています。
Screenshot
Advertisement
サンプルコード
UIManager.put("TabbedPane.shadow", Color.GRAY);
UIManager.put("TabbedPane.darkShadow", Color.GRAY);
UIManager.put("TabbedPane.light", Color.GRAY);
UIManager.put("TabbedPane.highlight", Color.GRAY);
UIManager.put("TabbedPane.tabAreaBackground", Color.GRAY);
UIManager.put("TabbedPane.unselectedBackground", Color.GRAY);
UIManager.put("TabbedPane.background", Color.GRAY);
UIManager.put("TabbedPane.foreground", Color.WHITE);
UIManager.put("TabbedPane.focus", Color.WHITE);
UIManager.put("TabbedPane.contentAreaColor", Color.WHITE);
UIManager.put("TabbedPane.selected", Color.WHITE);
UIManager.put("TabbedPane.selectHighlight", Color.WHITE);
// UIManager.put("TabbedPane.borderHighlightColor", Color.WHITE);
// Maybe typo but defined in MetalTabbedPaneUI
UIManager.put("TabbedPane.borderHightlightColor", Color.WHITE);
View in GitHub: Java, Kotlin解説
上記のサンプルでは、UIManager.put("TabbedPane.unselectedBackground", Color.GREEN);
などを利用してMetalLookAndFeel
でのタブエリアの背景色などを変更可能です。
BasicLookAndFeel
、MetalLookAndFeel
でのみ有効JPanel
タブ内に配置されているJCheckBox
でJTabbedPane
を不透明に設定可能JPanel
タブ内に配置されているJComboBox
でTabbedPane.tabAreaBackground
などのキーを指定し、その色の変更が可能- タブ文字色は
JTabbedPane#setForegroundAt(...)
メソッドを使用して切り替え可能 TabbedPane.borderHightlightColor
はおそらくTabbedPane.borderHighlightColor
の書き間違い- 現状(
Java 11
で確認)のMetalTabbedPaneUI
ではTabbedPane.borderHightlightColor
が定義されているため、こちらで色変更する必要がある
- 現状(
参考リンク
- JTabbedPaneの選択文字色を変更
- JTabbedPaneのタブ文字列をハイライト
- JDK-8078269 JTabbedPane UI Property TabbedPane.tabAreaBackground no longer works - Java Bug System