当前位置: 技术问答>java相关
关于JTextField录入的控制问题
来源: 互联网 发布时间:2015-07-07
本文导语: 一个JTextField中,我想控制它只能录入0-9或者“.”,怎么作?我现在可以判断录入的是否正确,比如录入1,可以,但是当录入a时,虽然我知道错了,但是怎么才能把这个字符干掉啊,setKeyCode()好像不管用啊,请教! ...
一个JTextField中,我想控制它只能录入0-9或者“.”,怎么作?我现在可以判断录入的是否正确,比如录入1,可以,但是当录入a时,虽然我知道错了,但是怎么才能把这个字符干掉啊,setKeyCode()好像不管用啊,请教!
|
改动如下:将判断换成Double就行,下面的设置不能输入负数,如果还想要什么设置,可以自己修改阿
class NumberDocument extends PlainDocument {
public void insertString(int offset,String s,AttributeSet attributeSet)
throws BadLocationException {
try {
if(!s.equals (".") && !s.equals ("-")) {
Integer.parseInt(s,10);
}
String src=/tech-qa-java/this.getText(0,this.getLength ());
Double.parseDouble (src.substring (0,offset)+s+src.substring (offset,src.length ()));
}
catch(Exception ex) {
Toolkit.getDefaultToolkit().beep();
return;
}
super.insertString (offset,s,attributeSet);
}
}
class NumberDocument extends PlainDocument {
public void insertString(int offset,String s,AttributeSet attributeSet)
throws BadLocationException {
try {
if(!s.equals (".") && !s.equals ("-")) {
Integer.parseInt(s,10);
}
String src=/tech-qa-java/this.getText(0,this.getLength ());
Double.parseDouble (src.substring (0,offset)+s+src.substring (offset,src.length ()));
}
catch(Exception ex) {
Toolkit.getDefaultToolkit().beep();
return;
}
super.insertString (offset,s,attributeSet);
}
}