概要
JSpinner
のエディタを編集不可にして、ボタンでしか値を変更できないようにします。
Screenshot
Advertisement
サンプルコード
SpinnerModel model = new SpinnerNumberModel(10, 0, 1000, 1);
JSpinner spinner = new JSpinner(model);
JTextField field = ((JSpinner.DefaultEditor) spinner.getEditor()).getTextField();
field.setEditable(false);
field.setBackground(UIManager.getColor("FormattedTextField.background"));
View in GitHub: Java, Kotlin解説
Default
- デフォルトの
JSpinner
- デフォルトの
spinner.setEnabled(false)
JSpinner#setEnabled(false)
メソッドでJSpinner
全体を編集不可に設定
field.setEnabled(false)
( (JSpinner.DefaultEditor) spinner.getEditor()).getTextField()
でJSpinner
のテキスト入力欄を取得し、これをJTextComponent#setEditable(false)
で編集不可に設定- 増減ボタンで値を変更可能だがキーボードでの値の入力は不可