采用了下面的方法来解决:
JSpinner spinner = new JSpinner(new SpinnerNumberModel(value, min, max, 1));
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
.getFormatterFactory();
NumberFormatter formatter = (NumberFormatter) factory.getDefaultFormatter();
formatter.setAllowsInvalid(false);
add(spinner);
这样输入就不可以输入字母了,因为设置了输入格式。超过范围的数值也是输入不进去的。
其他的格式都应该是类似的吧,呵呵。
只不过这里用的是NumberFormatter ,还有其他类型的。
转载 http://yangke1120.spaces.live.com/blog/cns!77b62010246eabc6!168.entry
本文介绍如何通过设置JSpinner及其编辑器来限制用户只能输入指定范围内的数值,并阻止非法字符输入。通过使用NumberFormatter并设置allowsInvalid为false,确保输入的有效性。
67

被折叠的 条评论
为什么被折叠?



