• 追加された行はこの色です。
  • 削除された行はこの色です。
#navi(../)
*JSpinnerを直接入力不可にする [#lfb04b9f]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2004-07-20~
更新日:&lastmod;
---
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`のエディタを編集不可にして、ボタンでしか値を変更できないようにします。

#contents
**概要 [#ibd90e34]
JSpinnerのエディタを編集不可にして、ボタンでしか値を変更できないようにします。
#download(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTTojxcMLI/AAAAAAAAAkw/BznS8i5Xfp4/s800/SpinnerEditor.png)

http://terai.xrea.jp/swing/spinnereditor/screenshot.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"));
}}

**サンプルコード [#x8ab7d07]
 SpinnerNumberModel model = new SpinnerNumberModel(10, 0, 1000, 1);
 JSpinner spinner = new JSpinner(model);
 ((JSpinner.NumberEditor)spinner.getEditor()).getTextField().setEditable(false);
* 解説 [#explanation]

-[[サンプルを起動>http://terai.xrea.jp/swing/spinnereditor/sample.jnlp]]
-[[jarファイル>http://terai.xrea.jp/swing/spinnereditor/sample.jar]]
-[[ソース>http://terai.xrea.jp/swing/spinnereditor/src.zip]]
**解説 [#i78c57d4]
上記のサンプルでは、エディタに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)`で編集不可に設定
-- 増減ボタンで値を変更可能だがキーボードでの値の入力は不可

//**参考リンク
**コメント [#v5377697]
* 参考リンク [#reference]
- [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/JSpinner.html#getEditor-- JSpinner#getEditor() (Java Platform SE 8)]

* コメント [#comment]
#comment
#comment