Swing/ExtendTabsToBase のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/ExtendTabsToBase へ行く。
- 1 (2021-11-29 (月) 06:40:36)
- category: swing folder: ExtendTabsToBase title: JTabbedPaneの二段目以上に存在するタブボーダーの描画をタブコンテンツエリアまで延長する tags: [JTabbedPane, NimbusLookAndFeel, UIManager, UIDefaults] author: aterai pubdate: 2021-11-29T06:35:33+09:00 description: NimbusLookAndFeelを適用したJTabbedPaneで二段目以上に存在するタブボーダーの描画をタブコンテンツエリアまで延長するかどうかを変更します。 image: https://drive.google.com/uc?id=15qMUt-AfUmLJgwe-_KJuO5e3cgDdIbWC
概要
NimbusLookAndFeelを適用したJTabbedPaneで二段目以上に存在するタブボーダーの描画をタブコンテンツエリアまで延長するかどうかを変更します。
Screenshot
Advertisement
サンプルコード
// TEST: UIManager.put("TabbedPane.tabRunOverlay", -4);
// UIManager.put("TabbedPane.extendTabsToBase", Boolean.TRUE); // Default
// UIManager.put("TabbedPane.extendTabsToBase", Boolean.FALSE);
JTabbedPane tabbedPane = makeTabbedPane();
UIDefaults d = UIManager.getLookAndFeelDefaults();
d.put("TabbedPane.extendTabsToBase", Boolean.FALSE);
tabbedPane.putClientProperty("Nimbus.Overrides", d);
tabbedPane.putClientProperty("Nimbus.Overrides.InheritDefaults", false);
View in GitHub: Java, Kotlin解説
- 上:
TabbedPane.extendTabsToBase: true
TabbedPane.extendTabsToBase
の設定はSynthLookAndFeel
やNimbusLookAndFeel
でのみ有効でデフォルトはtrue
- かつ二段目以上に存在するタブだけに影響するのでタブレイアウトが
WRAP_TAB_LAYOUT
の場合のみ有効
- かつ二段目以上に存在するタブだけに影響するのでタブレイアウトが
UIManager.put("TabbedPane.extendTabsToBase", ...)
でNimbusLookAndFeel
を適用する場合の初期値を変更可能
- 下:
TabbedPane.extendTabsToBase: false
- 個別の
JTabbedPane
に設定するためUIDefaults#put("TabbedPane.extendTabsToBase", Boolean.FALSE)
を上書きしたUIDefaults
をJTabbedPane#putClientProperty("Nimbus.Overrides", UIDefaults)
で設定している TabbedPane.extendTabsToBase
をfalse
に設定するとたとえばタブ配置がTOP
の場合二段目以上のタブの下辺がタブコンテンツエリアの上辺まで拡張して描画される- デフォルトの
JTabbedPane
では違いが微妙だがUIManager.put("TabbedPane.tabRunOverlay", -4)
などでタブランの重なりを逆に広げてみると分かりやすいかもしれない - JTabbedPaneのタブ・ランの回転を無効にする
- デフォルトの
- 個別の