Swing/SpinnerArrowButtonSize のバックアップ(No.3)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/SpinnerArrowButtonSize へ行く。
- 1 (2018-07-09 (月) 17:26:34)
- 2 (2018-10-13 (土) 21:30:29)
- 3 (2020-10-06 (火) 14:53:13)
- 4 (2022-07-06 (水) 04:59:55)
- category: swing folder: SpinnerArrowButtonSize title: JSpinnerのArrowButtonのサイズを変更 tags: [JSpinner, ArrowButton, LayoutManager, LookAndFeel, UIManager] author: aterai pubdate: 2018-07-02T15:35:14+09:00 description: JSpinnerのArrowButtonの幅と高さを変更します。 image: https://drive.google.com/uc?id=1McNGUqRAnh6645Jnm2JMAuKtzxtsD-B56w
概要
JSpinner
のArrowButton
の幅と高さを変更します。
Screenshot
Advertisement
サンプルコード
JSpinner spinner4 = new JSpinner(model) {
@Override public void updateUI() {
super.updateUI();
setFont(getFont().deriveFont(32f));
stream(this)
.filter(JButton.class::isInstance)
.map(JButton.class::cast)
.forEach(b -> {
Dimension d = b.getPreferredSize();
d.width = 50;
b.setPreferredSize(d);
});
}
};
View in GitHub: Java, Kotlin解説
default
JSpinner
のBasicArrowButton
は、幅は16px
固定、高さはJSpinner
の高さの半分が推奨サイズになっている
Spinner.arrowButtonSize
UIManager.put("Spinner.arrowButtonSize", new Dimension(60, 0));
などで幅を指定可能(高さの指定は無視される)- 幅固定の
BasicArrowButton
を使用するMetalLookAndFeel
やMotifLookAndFeel
などでは無効
setPreferredSize
JSpinner
の子コンポーネントからJButton
を検索してJButton#setPreferredSize(...)
で幅を変更- 幅固定の
BasicArrowButton
を使用するMetalLookAndFeel
やMotifLookAndFeel
などでは無効
setLayout
LayoutManager#layoutContainer(...)
メソッドをオーバーライドしてArrowButton
の幅を推奨サイズを無視して変更LookAndFeel
に関係なく幅を変更可能
setPreferredSize
での幅変更と合わせて、JSpinner
のフォントサイズを変更してArrowButton
の高さも変更
参考リンク
- Containerの子Componentを再帰的にすべて取得する
JButton
の検索に使用
- JComboBoxのArrowButtonを隠す
JSpinner
には、JComboBox
のUIManager.put("ComboBox.squareButton", Boolean.FALSE);
のような設定はない
- JSpinnerのボタンを左右に配置する
JSpinner
のレイアウト変更方法