質問: value.intValue()+1; } return newValue; } ``` それは無限ループに入ります。私は、ここで何らかの理由で国家変更イベントが発生すると思う。 `getValue` をもう一度呼び出し、さらに増分し、イベントを発生させ、増分などを行います。 どのようにこれを解決することができますか?ありがとう
回答: あなたのプログラムのデータモデルとスピナーのナンバーモデルを混同しないでください。それらを分離してください。正しい提示範囲、1 .. *n* を持つプライベートな `SpinnerNumberModel` に委任します。目的の範囲0 .. *n* -1の値を返すアクセサを提供します。 > `getValue()`の代わりにすべてのクライアントが使用する必要がある `getValue() - offset` のメソッド `getAdjustedValue() ?` `はい。 `SpinnerModel` は `JSpinner` ビューを提供します。アプリケーションのモデルで異なる単位が使用されている場合、変換が行われる必要があります。あなたはそれが最も理にかなっている場所を決めなければならないでしょう。具体的な例として、このモデルの [`ControlPanel`](https:// sites .google.com/site/drjohnbmatthews/kineticmodel/code#ControlPanel ) には、周波数を *Hz* アプリケーションの `Timer` にはミリ秒単位のピリオドが必要です。`