Swing/SpinnerEditor の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/SpinnerEditor へ行く。
- Swing/SpinnerEditor の差分を削除
--- category: swing folder: SpinnerEditor title: JSpinnerを直接入力不可にする tags: [JSpinner] author: aterai pubdate: 2004-07-19T11:14:52+09:00 description: JSpinnerのエディタを編集不可にして、ボタンでしか値を変更できないようにします。 image: https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTTojxcMLI/AAAAAAAAAkw/BznS8i5Xfp4/s800/SpinnerEditor.png --- * 概要 [#summary] `JSpinner`のエディタを編集不可にして、ボタンでしか値を変更できないようにします。 #download(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTTojxcMLI/AAAAAAAAAkw/BznS8i5Xfp4/s800/SpinnerEditor.png) * サンプルコード [#sourcecode] #code(link){{ 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")); }} * 解説 [#explanation] - `Default` -- デフォルトの`JSpinner` - `spinner.setEnabled(false)` -- `JSpinner#setEnabled(false)`で`JSpinner`全体を編集不可に設定 -- `JSpinner#setEnabled(false)`メソッドで`JSpinner`全体を編集不可に設定 - `field.setEnabled(false)` -- `( (JSpinner.DefaultEditor) spinner.getEditor()).getTextField()`で`JSpinner`のテキスト入力欄を取得し、これを`JTextComponent#setEditable(false)`で編集不可に設定 -- 上下ボタンで値を変更可能だが、キーボードでの値の入力は不可 -- 増減ボタンで値を変更可能だがキーボードでの値の入力は不可 * 参考リンク [#reference] - [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/JSpinner.html#getEditor-- JSpinner#getEditor() (Java Platform SE 8)] * コメント [#comment] #comment #comment