• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JSpinnerを直接入力不可にする
#navi(../)
#tags(JSpinner)
RIGHT:Posted by &author(aterai); at 2004-07-19
* JSpinnerを直接入力不可にする [#lfb04b9f]
---
title: JSpinnerを直接入力不可にする
tags: [JSpinner]
author: aterai
pubdate: 2004-07-19
description: JSpinnerのエディタを編集不可にして、ボタンでしか値を変更できないようにします。
---
* 概要 [#lfb04b9f]
`JSpinner`のエディタを編集不可にして、ボタンでしか値を変更できないようにします。

#download
#ref(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTTojxcMLI/AAAAAAAAAkw/BznS8i5Xfp4/s800/SpinnerEditor.png)
#download(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTTojxcMLI/AAAAAAAAAkw/BznS8i5Xfp4/s800/SpinnerEditor.png)

** サンプルコード [#x8ab7d07]
* サンプルコード [#x8ab7d07]
#code(link){{
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"));
}}

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

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

//**参考リンク
** コメント [#v5377697]
//* 参考リンク
* コメント [#v5377697]
#comment
#comment