概要

MetalLookAndFeelJTabbedPaneで、タブエリアの背景色などを変更するテストをしています。

サンプルコード

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 all

解説

上記のサンプルでは、UIManager.put("TabbedPane.unselectedBackground", Color.GREEN);などを利用して、MetalLookAndFeelでのタブエリアの背景色などを変更できます。

  • BasicLookAndFeelMetalLookAndFeelでのみ有効
  • JPanelタブ内に配置されているJCheckBoxで、JTabbedPaneを不透明に設定可能
  • JPanelタブ内に配置されているJComboBoxで、TabbedPane.tabAreaBackgroundなどのキーを指定し、その色の変更が可能
  • タブ文字色は、JTabbedPane#setForegroundAt(...)メソッドを使用して切り替え可能
  • TabbedPane.borderHightlightColorTabbedPane.borderHighlightColorの書き間違いだと思うが、現状(Java 11で確認)のMetalTabbedPaneUIではTabbedPane.borderHightlightColorが定義されているため、こちらで色変更が可能になっている

参考リンク

コメント