2011-12-26 30 views
5

我是Java和NetBeans的初学者。我试图做一个简单的程序,你介绍2个数字,他们的总和除以2。但是,我使用的是JFormattedTExtField,我不知道如何自定义它们中允许的输入。基本上我试图找出如何:如何设置jFormattedTextField,使它只允许2个数字?

  • 只允许输入数字在JFormmatedTextField;
  • 只允许一定数量的数字;
+1

可能是你的JSpinner有看太, – mKorbel 2011-12-26 19:05:39

回答

9

您可以使用NumberFormat并指定setMaximumIntegerDigits的最大整数位数。

这是一个不错的article

基本上,你可以这样做:

NumberFormat f = NumberFormat.getNumberInstance(); 
f.setMaximumIntegerDigits(maxDigitsAmount); 
JFormattedTextField field = new JFormattedTextField(f); 

Format应保证所插入的字符串满足格式。无论如何,即使提供了一个数字,文本字段也会将其存储为字符串。所以,如果你需要你原来的整数您需要重建它像建议@noise:

Integer i = Integer.toString(field.getText()); 
+0

谢谢!哦,另一件事。如果有人可以告诉我如何将文本字段的文本设置为int?例如,我有2个整数(在2个文本框中输入的值)和一个rezult int,它等于2个整数的和。如果我调用jTextField1.setText(rezult),它会要求字符串而不是int。任何帮助? – Bugster 2011-12-26 17:40:08

+1

使用'Integer.toString(int)' – 2011-12-26 17:43:20

+0

非常感谢。我几乎修复它,除非我调用JFormattedTextField field = new JFormattedTextField(f);它给我一个错误“无法找到符号JFormattedTextField”。任何想法? – Bugster 2011-12-26 17:49:21