我正在尝试设置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);
但是当通过输入9s进行测试时,它允许用户输入额外的9,除非你到达9,999,999,999,它将值更改为1,410,065,398,如果再次达到9,则将值更改为1,215,752,102并停止接受更多数字。从那里你可以正常增加值,直到你到达Integer.MAX_VALUE
,格式化程序正确地停止了微调器。
如果使用任何其他数字,则微调器通常会阻塞最后一位数(即3s只允许用户输入333,333,333)。