JSpinner的输入限制实现
最近使用了JSpinner,需要限制其中数字部分。
final SpinnerModel model = new SpinnerNumberModel(minNumber, minNumber, maxNumber, 1);
numberSpinner = new JSpinner(model);
// 允许输入
final JSpinner.NumberEditor editor = new JSpinner.NumberEditor(numberSpinner, "0");
numberSpinner.setEditor(editor);
final JFormattedTextField textField = ((JSpinner.NumberEditor)numberSpinner.getEditor()).getTextField();
textField.setEditable(true);//开启输入功能
// 开启输入的值的限制
final DefaultFormatterFactory factory = (DefaultFormatterFactory)textField.getFormatterFactory();
final NumberFormatter formatter = (NumberFormatter)factory.getDefaultFormatter();
formatter.setAllowsInvalid(false);// 此处对输入的有效性进行控制。若改为true,则不控制有效性 1 楼 lishankang 2012-07-23 http://topic.csdn.net/t/20040810/01/3258174.html
高手,我也在折腾这个东西呢,就是搞不定,没有想到可以将JFormattedTextField单独提出来进行设置。
但是我运行你的代码,发现里面最后一个数字清楚不掉,即我输入31,删除内容的时候,最后的3不能删除掉,请问怎么设置?