Java输入号码
我做了一种输入数字的方法。但我希望输入是数字的,但仍然可以输入点(.)。请我的朋友帮助我。谢谢Java输入号码,java,swing,input,numbers,Java,Swing,Input,Numbers,我做了一种输入数字的方法。但我希望输入是数字的,但仍然可以输入点(.)。请我的朋友帮助我。谢谢 private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) { // TODO add your handling code here: FilterHanyaAngka(evt); } public void FilterHanyaAngka
private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
FilterHanyaAngka(evt);
}
public void FilterHanyaAngka(java.awt.event.KeyEvent evt) {
char c = evt.getKeyChar();
if (!((Character.isDigit(c) || (c == KeyEvent.VK_BACK_SPACE) || (c == KeyEvent.VK_DELETE)))) {
evt.consume();
}
}
不要使用
KeyListener
来过滤文本组件的内容,您不知道KeyListener
s将以什么顺序被通知,并且按键笔划可能已经发送到您之前的字段
相反,您应该使用DocumentFilter
看一看,尤其是
事实上,我相信这里列出了一个数字过滤器示例…您可以使用
ASCII
而不是Character或KeyEvent类。
看看这个:
public class ASCIITest {
public static void main(String[] args) {
char c = '3';
if ((c >= '0' && c <= '9') || c == '.') {
//some code..
}
}
public类ASCIITest{
公共静态void main(字符串[]args){
字符c='3';
如果((c>='0'&&c是的,我认为我已经找到了解决方案
public void filterDesimal(java.awt.event.KeyEvent evt) {
char ch = evt.getKeyChar();
if (!((ch == '.') ||
(ch == '0') ||
(ch == '1') ||
(ch == '2') ||
(ch == '3') ||
(ch == '4') ||
(ch == '5')||
(ch == '6') ||
(ch == '7') ||
(ch == '8') ||
(ch == '9') ||
(ch == ',') ||
(ch == KeyEvent.VK_BACK_SPACE) ||
(ch == KeyEvent.VK_DELETE)
)){
evt.consume();
}
}