Swing/ToolBarSeparatorSize のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/ToolBarSeparatorSize へ行く。
- 1 (2023-04-24 (月) 05:04:19)
- category: swing folder: ToolBarSeparatorSize title: JToolBar専用JSeparatorのサイズを指定する tags: [JToolBar, JSeparator, UIManager] author: aterai pubdate: 2023-04-24T05:02:52+09:00 description: JToolBar専用JToolBar.Separatorのサイズ変更をテストします。 image: https://drive.google.com/uc?id=1DUJCi9uB6NXFr0uKs3fvCHLW4Z_0xpbl
概要
JToolBar専用JToolBar.Separatorのサイズ変更をテストします。
Screenshot
Advertisement
サンプルコード
// UIManager.put("ToolBar.separatorSize", new Dimension(2, 20));
JToolBar bar = new JToolBar();
bar.add(new JCheckBox("JCheckBox"));
bar.addSeparator();
bar.add(new JRadioButton("JRadioButton"));
bar.addSeparator(new Dimension(32, 32));
bar.add(new JButton("JButton"));
bar.addSeparator(new Dimension(10, 10));
bar.add(new JToggleButton("JToggleButton"));
bar.add(Box.createVerticalGlue());
SpinnerNumberModel mw = new SpinnerNumberModel(10, -10, 50, 1);
SpinnerNumberModel mh = new SpinnerNumberModel(32, -10, 50, 1);
ChangeListener cl = e -> {
Dimension d = new Dimension(
mw.getNumber().intValue(), mh.getNumber().intValue());
for (Component c : bar.getComponents()) {
if (c instanceof JToolBar.Separator) {
((JToolBar.Separator) c).setSeparatorSize(d);
}
}
bar.revalidate();
};
mw.addChangeListener(cl);
mh.addChangeListener(cl);
View in GitHub: Java, Kotlin解説
- JToolBar#addSeparator(Dimension)メソッドで
JToolBar
にサイズを指定してJSeparator
を追加可能 UIManager.put("ToolBar.separatorSize", new Dimension(...))
でまとめてデフォルトのJToolBar.Separator
のサイズ指定する方法もあるUIManager.put("ToolBar.separatorSize", new Dimension(...))
を使用した水平JToolBar
の場合、幅が高さ、高さが幅に自動的に入れ替わる
JToolBar.Separator
のサイズをJToolBar#addSeparator(Dimension)
やJToolBar.Separator#setSeparatorSize(...)
で指定して水平JToolBar
を垂直JToolBar
に変換:UIManager.put("ToolBar.separatorSize", new Dimension(...))
を使用した場合と異なり、幅と高さの入れ替えは発生しないWindowsLookAndFeel
の場合、区切り線は指定した幅までのみ描画され、親JToolBar
の幅まで拡張されないNimbusLookAndFeel
の場合、区切り点線は親JToolBar
の幅まで拡張して描画される
JToolBar.Separator#setSeparatorSize(Dimension)
- 負のサイズを設定してもエラーにはならない
null
を設定してもなにも変化せず、初期状態に戻せない?- このサンプルでは以下のように一旦
JToolBar#removeAll()
ですべてのコンポーネントを削除してからサイズ指定なしでJToolBar#addSeparator()
を使用してJToolBar.Separator
を追加しなおしている
JButton button = new JButton("reset");
button.addActionListener(e -> {
Component[] list = bar.getComponents();
bar.removeAll();
for (Component c : list) {
if (c instanceof JToolBar.Separator) {
bar.addSeparator();
} else {
bar.add(c);
}
}
});