JSpinner 输入控制

使用SpinnerNumberModel,虽然设置了min,max,但是还是可以输入超出范围的数值,还可以输入字母,这些都应该是屏蔽掉的。
采用了下面的方法来解决:

   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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值