最近用到JSpinner,但是不能控制用户输入。
比如使用SpinnerNumberModel,虽然设置了min,max,但是还是可以输入超出范围的数值,还可以输入字母,这些都应该是屏蔽掉的。
采用了下面的方法来解决:
spinner.setBounds(x,y,width,height);
// 控制输入
JSpinner.NumberEditor editor = new JSpinner.NumberEditor(spinner, "0");
spinner.setEditor(editor);
JFormattedTextField textField = ((JSpinner.NumberEditor) spinner.getEditor()).getTextField();
textField.setEditable(true);
DefaultFormatterFactory factory = (DefaultFormatterFactory) textField .getFormatt