package com.util;
import javax.swing.text.*;
/**
* 实现让文体框只能输入限定长度的数字
* @author 曾祥训
*
*/
public class NumberLenghtLimitedDmt extends PlainDocument {
/**
*
*/
private static final long serialVersionUID = -7371120135793981234L;
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 txtAge = new JTextField();
txtAge.setDocument(new NumberLenghtLimitedDmt(3));