JSpinner の最大値を最大整数値と一致するように設定して、MySQL データベースの SQL クエリで数値を使用できるようにしようとしています。スピナーとモデルの設定コードは次のとおりです。
SpinnerNumberModel spinnerModel =
new SpinnerNumberModel(0, 0, Integer.MAX_VALUE, 1);
JSpinner spinner = new JSpinner(spinnerModel);
JFormattedTextField formatSpinner = (
(JSpinner.NumberEditor) spinner.getEditor()).getTextField();
((NumberFormatter) formatSpinner.getFormatter()).setAllowsInvalid(false);
ただし、9 を入力してこれをテストすると、9,999,999,999 に達すると値が 1,410,065,398 に変更され、もう一度 9 を押すと値が 1,215,752,102 に変更され、それ以上の数字の受け入れが停止します。Integer.MAX_VALUE
そこから、フォーマッターがスピナーを正しく停止する に到達するまで、値を通常どおりインクリメントできます。
他の数字が使用されている場合、スピナーは最後の数字をブロックすることで正常に動作します (つまり、3 の場合、ユーザーは 333,333,333 しか入力できません)。