Swing/TabbedPaneTabsOverlapBorder の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/TabbedPaneTabsOverlapBorder へ行く。
- Swing/TabbedPaneTabsOverlapBorder の差分を削除
--- category: swing folder: TabbedPaneTabsOverlapBorder title: JTabbedPaneのコンテナBorderを選択したタブで上書きする tags: [JTabbedPane, UIManager, LookAndFeel, Border] author: aterai pubdate: 2022-11-28T06:14:07+09:00 description: JTabbedPaneのコンテナBorderを選択したタブで上書きするかを設定で切り替えます。 image: https://drive.google.com/uc?id=1sfAb3nfsGQIrtx4cdPc2PJhOF2oqow25 --- * 概要 [#summary] `JTabbedPane`のコンテナ`Border`を選択したタブで上書きするかを設定で切り替えます。 #download(https://drive.google.com/uc?id=1sfAb3nfsGQIrtx4cdPc2PJhOF2oqow25) * サンプルコード [#sourcecode] #code(link){{ JTabbedPane tabs = makeTabbedPane(); tabs.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); List<JTabbedPane> list = Arrays.asList(makeTabbedPane(), tabs); String key = "TabbedPane.tabsOverlapBorder"; JCheckBox check = new JCheckBox(key, UIManager.getBoolean(key)) { @Override public void updateUI() { super.updateUI(); boolean b = UIManager.getLookAndFeelDefaults().getBoolean(key); setSelected(b); UIManager.put(key, b); list.forEach(SwingUtilities::updateComponentTreeUI); } }; check.addActionListener(e -> { boolean b = ((JCheckBox) e.getSource()).isSelected(); UIManager.put(key, b); list.forEach(SwingUtilities::updateComponentTreeUI); }); }} * 解説 [#explanation] - `WindowsLookAndFeel` -- デフォルトは`TabbedPane.tabsOverlapBorder`は`true`で`JTabbedPane`のコンテナ`Border`を選択したタブで上書きしてコンテナと選択タブが一体化した状態で描画される -- デフォルトは`TabbedPane.tabsOverlapBorder: true`で`JTabbedPane`のコンテナ`Border`を選択したタブで上書きしてコンテナと選択タブが一体化した状態で描画される -- `UIManager.put("TabbedPane.tabsOverlapBorder", false)`を設定すると選択タブのサイズが非選択タブと同じサイズまで縮小してコンテナ`Border`で区切られた状態で描画される - `Windows Classic` -- デフォルトは`TabbedPane.tabsOverlapBorder`は`false`だが、常に`JTabbedPane`のコンテナ`Border`を選択したタブで上書きしてコンテナと選択タブが一体化した状態で描画される -- デフォルトは`TabbedPane.tabsOverlapBorder: false`だが、常に`JTabbedPane`のコンテナ`Border`を選択したタブで上書きしてコンテナと選択タブが一体化した状態で描画される -- `UIManager.put("TabbedPane.tabsOverlapBorder", true)`を設定すると、`SCROLL_TAB_LAYOUT`の場合選択タブのサイズが拡大、`WRAP_TAB_LAYOUT`の場合タブの右`Border`がタブコンテナ内に延長して描画される - `MetalLookAndFeel` -- デフォルトは`TabbedPane.tabsOverlapBorder`は`false`だが、`JTabbedPane`のコンテナ`Border`を選択したタブで上書きしてコンテナと選択タブが一体化した状態で描画される -- デフォルトは`TabbedPane.tabsOverlapBorder: false`だが、`JTabbedPane`のコンテナ`Border`を選択したタブで上書きしてコンテナと選択タブが一体化した状態で描画される -- `UIManager.put("TabbedPane.tabsOverlapBorder", true)`を設定すると、`SCROLL_TAB_LAYOUT`の場合選択タブのサイズが拡大されてタブの右側が見切れてしまう --- `WRAP_TAB_LAYOUT`の場合、選択タブサイズに変化はない - `MotifLookAndFeel` -- デフォルトは`TabbedPane.tabsOverlapBorder`は`false`だが、`JTabbedPane`のコンテナ`Border`を選択したタブで上書きしてコンテナと選択タブが一体化した状態で描画される -- デフォルトは`TabbedPane.tabsOverlapBorder: false`だが、`JTabbedPane`のコンテナ`Border`を選択したタブで上書きしてコンテナと選択タブが一体化した状態で描画される -- `UIManager.put("TabbedPane.tabsOverlapBorder", true)`を設定すると、`SCROLL_TAB_LAYOUT`の場合選択タブの高さが拡大、`WRAP_TAB_LAYOUT`の場合選択タブサイズに変化はない - `NimbusLookAndFeel` - `NimbusLookAndFeel`、`GTKLookAndFeel` -- デフォルトは`TabbedPane.tabsOverlapBorder`は`false`だが、`true`を設定しても描画は変化しない -- [[JTabbedPaneのNimbusLookAndFeelにおけるスタイルを変更する>Swing/NimbusTabbedPanePainter]] * 参考リンク [#reference] - [[JTabbedPaneのNimbusLookAndFeelにおけるスタイルを変更する>Swing/NimbusTabbedPanePainter]] * コメント [#comment] #comment #comment