在网上看了很多资料,要不是只能输入数字,要不是只能限制长度的,都是单独的使用,但我需要的是同时限制的,就把两个功能给综合了起来!基本功能是实现了!!!
import javax.swing.text.*;
public class NumberLenghtLimitedDmt extends PlainDocument {
private int limit;
public NumberLenghtLimitedDmt(int limit) {
super();
this.limit = limit;
}
public void insertString
(int offset, String str, AttributeSet attr)
throws BadLocationException {
if (str == null){
return;
}
if ((getLength() + str.length()) <= limit) {
char[] upper = str.toCharArray();
int length=0;
for (int i = 0; i < upper.length; i++) {
if (upper[i]>='0'&&upper[i]<='9'){
upper[length++] = upper[i];
}
}
super.insertString(offset, new String(upper,0,length), attr);
}
}
}
用法:
JTextField text=new JTextField();
text.setDocument(new NumberLenghtLimitedDmt(7));
那么这个文本框只能输入7位而且是只能是数字!!!
本文介绍了一个Java类,该类能够实现对文本框输入内容的双重限制:一是仅允许数字输入,二是限定输入长度。通过继承`PlainDocument`并重写`insertString`方法来达到效果。

1329

被折叠的 条评论
为什么被折叠?



