Do you want to use Document DocumentFilter
public class SizeFilter extends DocumentFilter {
private int maxCharacters;
public SizeFilter(int maxChars) {
maxCharacters = maxChars;
}
public void insertString(FilterBypass fb, int offs, String str, AttributeSet a)
throws BadLocationException {
if ((fb.getDocument().getLength() + str.length()) > maxCharacters)
int trim = maxCharacters - (fb.getDocument().getLength() + str.length());
fb.remove(0, trim);
}
super.insertString(fb, offs, str, a);
}
public void replace(FilterBypass fb, int offs, int length, String str, AttributeSet a)
throws BadLocationException {
if ((fb.getDocument().getLength() + str.length() - length) > maxCharacters) {
int trim = maxCharacters - (fb.getDocument().getLength() + str.length() - length);
fb.remove(0, trim);
}
super.replace(fb, offs, length, str, a);
}
}
http://www.jroller.com/dpmihai/entry/documentfilter
...
((AbstractDocument)field.getDocument()).setDocumentFilter(...)