TITLE:JSpinnerのモデルの値をループさせる
#navi(../)
#tags()
RIGHT:Posted by &author(aterai); at 2010-02-01
*JSpinnerのモデルの値をループさせる [#g1e8aa14]
JSpinnerのモデルで値が最大、最小を超えるとループするように設定します。

-&jnlp;
-&jar;
-&zip;

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

**サンプルコード [#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メソッドをオーバーライドすることでループするように設定しています。

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

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