Swing/TabbedPaneTabsOverlapBorder のバックアップ(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TabbedPaneTabsOverlapBorder へ行く。
- 1 (2022-11-28 (月) 06:15:31)
- 2 (2022-11-28 (月) 14:39:41)
- 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
概要
JTabbedPane
のコンテナBorder
を選択したタブで上書きするかを設定で切り替えます。
Screenshot
Advertisement
サンプルコード
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);
});
View in GitHub: Java, Kotlin解説
WindowsLookAndFeel
- デフォルトは
TabbedPane.tabsOverlapBorder
はtrue
でJTabbedPane
のコンテナBorder
を選択したタブで上書きしてコンテナと選択タブが一体化した状態で描画される UIManager.put("TabbedPane.tabsOverlapBorder", false)
を設定すると選択タブのサイズが非選択タブと同じサイズまで縮小してコンテナBorder
で区切られた状態で描画される
- デフォルトは
Windows Classic
- デフォルトは
TabbedPane.tabsOverlapBorder
はfalse
だが、常にJTabbedPane
のコンテナBorder
を選択したタブで上書きしてコンテナと選択タブが一体化した状態で描画される UIManager.put("TabbedPane.tabsOverlapBorder", true)
を設定すると、SCROLL_TAB_LAYOUT
の場合選択タブのサイズが拡大、WRAP_TAB_LAYOUT
の場合タブの右Border
がタブコンテナ内に延長して描画される
- デフォルトは
MetalLookAndFeel
- デフォルトは
TabbedPane.tabsOverlapBorder
はfalse
だが、JTabbedPane
のコンテナBorder
を選択したタブで上書きしてコンテナと選択タブが一体化した状態で描画される UIManager.put("TabbedPane.tabsOverlapBorder", true)
を設定すると、SCROLL_TAB_LAYOUT
の場合選択タブのサイズが拡大されてタブの右側が見切れてしまうWRAP_TAB_LAYOUT
の場合、選択タブサイズに変化はない
- デフォルトは
MotifLookAndFeel
- デフォルトは
TabbedPane.tabsOverlapBorder
はfalse
だが、JTabbedPane
のコンテナBorder
を選択したタブで上書きしてコンテナと選択タブが一体化した状態で描画される UIManager.put("TabbedPane.tabsOverlapBorder", true)
を設定すると、SCROLL_TAB_LAYOUT
の場合選択タブの高さが拡大、WRAP_TAB_LAYOUT
の場合選択タブサイズに変化はない
- デフォルトは
NimbusLookAndFeel
- デフォルトは
TabbedPane.tabsOverlapBorder
はfalse
だが、true
を設定しても描画は変化しない - JTabbedPaneのNimbusLookAndFeelにおけるスタイルを変更する
- デフォルトは