• title: JSpinnerを直接入力不可にする tags: [JSpinner] author: aterai pubdate: 2004-07-19 description: JSpinnerのエディタを編集不可にして、ボタンでしか値を変更できないようにします。

概要

JSpinnerのエディタを編集不可にして、ボタンでしか値を変更できないようにします。

サンプルコード

SpinnerNumberModel model = new SpinnerNumberModel(10, 0, 1000, 1);
JSpinner spinner = new JSpinner(model);
//UIManager.put("FormattedTextField.inactiveBackground", Color.RED);
JTextField field = ((JSpinner.NumberEditor)spinner.getEditor()).getTextField();
field.setEditable(false);
field.setBackground(UIManager.getColor("FormattedTextField.background"));
View in GitHub: Java, Kotlin

解説

上記のサンプルでは、「直接編集不可」の場合、上下ボタンで値を変更することはできますが、直接キーボードから値を入力することができなくなります。

JSpinnerの編集可・不可を変更するのではなく、JSpinnerで使用するエディタから取得したJTextFieldの編集可・不可を切り替えています。

コメント