写个document,设定JTextField的document属性即可,下面给你一个
调用方式
textfiled.setDocument(new NumberDocument());
其中NumberDocument是继承PlainDocument的子类。
覆盖insertString和remove两个方法。?
详情请看:
http://java.sun.com/docs/books/tutorial/uiswing/components/textfield.html#validation
只能输入数字
import javax.swing.text.*;
import java.awt.*;public class NumberDocument extends PlainDocument { public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException { char[] source = str.toCharArray();
char[] result = new char[source.length];
int j = 0; for (int i = 0; i < result.length; i++) {
if (Character.isDigit(source[i]))//此处按需求设定,此时设定为数字
result[j++] = source[i];
else {
Toolkit.getDefaultToolkit().beep();
System.err.println("insertString: " + source[i]);
}
}
super.insertString(offs, new String(result, 0, j), a);
}
}
调用方式
textfiled.setDocument(new NumberDocument());
其中NumberDocument是继承PlainDocument的子类。
覆盖insertString和remove两个方法。?
详情请看:
http://java.sun.com/docs/books/tutorial/uiswing/components/textfield.html#validation
只能输入数字
import javax.swing.text.*;
import java.awt.*;public class NumberDocument extends PlainDocument { public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException { char[] source = str.toCharArray();
char[] result = new char[source.length];
int j = 0; for (int i = 0; i < result.length; i++) {
if (Character.isDigit(source[i]))//此处按需求设定,此时设定为数字
result[j++] = source[i];
else {
Toolkit.getDefaultToolkit().beep();
System.err.println("insertString: " + source[i]);
}
}
super.insertString(offs, new String(result, 0, j), a);
}
}
老兄,上面的代码是只能录入数字,可是还要有小数点啊,还要判断小数点不能多于一个啊,怎么办?有qq吗?随时联系啊,我的是8123836,thanks
public void insertString(int offset,String s,AttributeSet attributeSet)
throws BadLocationException {
try {
if(!s.equals (".") && !s.equals ("-")) {
Integer.parseInt(s,10);
}
String src=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);
}
}