在 Java 中验证整数值的问题
您好,我正在使用Eclipse Rcp,我需要验证仅接受整数值的文本框,因为我使用了代码
txtCapacity.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent EVT) {
if((EVT.character>='0' && EVT.character<='9')){
txtCapacity.setEditable(true);
txtCapacity.setEditable(true);
} else {
txtCapacity.setEditable(false);
System.out.println("enter only the numeric number");
}
}
});
它验证了但是这个问题是我无法使用退格键用于删除号码。请告诉我验证小数的想法。 提前致谢
hi i am using Eclipse Rcp and i need to validate the textbox that only accept the integer value for that i have use the code
txtCapacity.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent EVT) {
if((EVT.character>='0' && EVT.character<='9')){
txtCapacity.setEditable(true);
txtCapacity.setEditable(true);
} else {
txtCapacity.setEditable(false);
System.out.println("enter only the numeric number");
}
}
});
It validates But the Problem with this one is that i cannot use the Backspace key for deleteting the number. and please tell me idea for Validating the decimal too.
thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
不要使用
KeyListener
!使用VerifyListener
代替,因为这将处理粘贴、退格、替换......例如
Dont use the
KeyListener
! Use aVerifyListener
instead as this will handle paste, backspace, replace.....E.g.
当您使用侦听器时,您可以清空文本字段,而不是使其不可编辑。您可以执行类似的操作,该代码段基于您的代码。
或者如果您使用
JFormattedTextField
,效果会更好。我不确定你在 SWT 中是否有这个,即使你没有然后尝试寻找类似的。As you are using a listener, you can empty the text field, instead of making it not-editable. You can do something like this, the snippet is based upon your code.
Or better if you use
JFormattedTextField
. I'm not sure if you have that in SWT, even if you don't then try to look for the similar.另一种可能性是使用 Nebular 的 FormattedTextField-Widget,请参阅 http://www. eclipse.org/nebula/widgets/formattedtext/formattedtext.php
优点是你只需要提供一个模式,不需要编写自己的监听器。
Another possibility is to use the FormattedTextField-Widget from Nebular, see http://www.eclipse.org/nebula/widgets/formattedtext/formattedtext.php
The advantage is that you only have to provide a pattern, there is no need to write your own listeners..
您可以使用此函数来验证数字是否:
如果函数返回的值小于零,则它不是有效的正数。
You can use this function to validate if the number:
If the function returns a value less than zero, then it is not a valid positive number.
要验证
value
是否实际上是十进制,您可以简单地使用 -For validating if a
value
is infact decimal or not, you can simply use -您可能应该设置一个 文档 在您的文本框中。您可以实施客户文档来过滤有效输入以满足您的要求。每次在字段中添加或删除文本时,文档都会检查整体输入是否有效。
You should probably set a Document on your text box. You can implement a customer Document to filter for valid input to satisfy your requirements. Each time text is added or removed from your field, the Document will check if the overall input is valid.