• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JSpinnerのモデルの値をループさせる
#navi(../)
#tags()
RIGHT:Posted by &author(aterai); at 2010-02-01
*JSpinnerのモデルの値をループさせる [#g1e8aa14]
JSpinnerのモデルで値が最大、最小を超えるとループするように設定します。
---
title: JSpinnerのモデルの値をループさせる
tags: [JSpinner, SpinnerNumberModel]
author: aterai
pubdate: 2010-02-01T01:53:39+09:00
description: JSpinnerのモデルで値が最大、最小を超えるとループするように設定します。
---
* 概要 [#g1e8aa14]
`JSpinner`のモデルで値が最大、最小を超えるとループするように設定します。

-&jnlp;
-&jar;
-&zip;
#download(https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTKYcCKxAI/AAAAAAAAAV4/T8OdovAF6EY/s800/CyclingSpinnerModel.png)

//#screenshot
#ref(http://lh4.ggpht.com/_9Z4BYR88imo/TQTKYcCKxAI/AAAAAAAAAV4/T8OdovAF6EY/s800/CyclingSpinnerModel.png)

**サンプルコード [#ld341dbc]
* サンプルコード [#ld341dbc]
#code(link){{
spinner.setModel(new SpinnerNumberModel(20, 0, 59, 1) {
  @Override public Object getNextValue() {
    Object n = super.getNextValue();
    if(n==null) n = getMinimum();
    return n;
  }
  @Override public Object getPreviousValue() {
    Object n = super.getPreviousValue();
    if(n==null) n = getMaximum();
    return n;
  }
});
}}

**解説 [#m44dfbfa]
上記のサンプルでは、各モデルのgetNextValue、getPreviousValueメソッドをオーバーライドすることでループするように設定しています。
* 解説 [#m44dfbfa]
上記のサンプルでは、各モデルの`getNextValue`、`getPreviousValue`メソッドをオーバーライドすることでループするように設定しています。

**参考リンク [#w63c8b19]
* 参考リンク [#w63c8b19]
- [http://docs.oracle.com/javase/tutorial/uiswing/components/spinner.html#model Creating Custom Spinner Models and Editors]

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