沙漠中的鱼

欲上天堂,先下地狱
posts - 0, comments - 56, trackbacks - 0, articles - 119
  BlogJava :: 首页 ::  :: 联系 :: 聚合  :: 管理

JSpinner控制输入

Posted on 2009-03-16 22:40 沙漠中的鱼 阅读(1898) 评论(2)  编辑  收藏 所属分类: Java

最近用到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


评论

# re: JSpinner控制输入  回复  更多评论   

2010-09-08 12:40 by 路过人
遇到同样问题,搜了半天,终于搜到了,非常感谢!

# re: JSpinner控制输入  回复  更多评论   

2011-07-06 13:48 by illusion
十分感谢!!!

只有注册用户登录后才能发表评论。


网站导航: