JTabbedPaneのコンテナBorderを選択したタブで上書きする
Total: 741
, Today: 1
, Yesterday: 0
Posted by aterai at
Last-modified:
概要
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
、GTKLookAndFeel
- デフォルトは
TabbedPane.tabsOverlapBorder
はfalse
だが、true
を設定しても描画は変化しない - JTabbedPaneのNimbusLookAndFeelにおけるスタイルを変更する
- デフォルトは