Swing/SpinnerEditor のバックアップの現在との差分(No.7)
JSpinnerを直接入力不可にする
編集者:Terai Atsuhiro~
作成日:2004-07-20
更新日:2021-12-01 (水) 08:32:43
概要
JSpinner
のエディタを編集不可にして、ボタンでしか値を変更できないようにします。
概要
JSpinnerのエディタを編集不可にして、ボタンでしか値を変更できないようにします。Screenshot
Advertisement
サンプルコード
#spanend
#spanadd
SpinnerModel model = new SpinnerNumberModel(10, 0, 1000, 1);
#spanend
#spanadd
JSpinner spinner = new JSpinner(model);
#spanend
#spanadd
JTextField field = ((JSpinner.DefaultEditor) spinner.getEditor()).getTextField();
#spanend
#spanadd
field.setEditable(false);
#spanend
#spanadd
field.setBackground(UIManager.getColor("FormattedTextField.background"));
#spanend
#spanadd
View in GitHub: Java, Kotlinサンプルコード
SpinnerNumberModel model = new SpinnerNumberModel(10, 0, 1000, 1); JSpinner spinner = new JSpinner(model); ((JSpinner.NumberEditor)spinner.getEditor()).getTextField().setEditable(false);
解説
解説
上記のサンプルでは、エディタにJSpinner.NumberEditorを使用しています。このエディタからTextFieldを取得し、setEditable(false)とすることで、直接キーボードから値を入力を禁止しています。-
Default
- デフォルトの
JSpinner
- デフォルトの
-
spinner.setEnabled(false)
-
JSpinner#setEnabled(false)
メソッドでJSpinner
全体を編集不可に設定
-
-
field.setEnabled(false)
-
( (JSpinner.DefaultEditor) spinner.getEditor()).getTextField()
でJSpinner
のテキスト入力欄を取得し、これをJTextComponent#setEditable(false)
で編集不可に設定 - 増減ボタンで値を変更可能だがキーボードでの値の入力は不可
-