You current code is not setting the maximum length, rather it is defining the number of visible columns.
To restrict the maximum length of the data, you can set a custom Document
for the text field that does not permit additions that break the maximum length restriction:
public final class LengthRestrictedDocument extends PlainDocument {
private final int limit;
public LengthRestrictedDocument(int limit) {
this.limit = limit;
}
@Override
public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException {
if (str == null)
return;
if ((getLength() + str.length()) <= limit) {
super.insertString(offs, str, a);
}
}
}
Then set your text field to use this document:
text2.setDocument(new LengthRestrictedDocument(8));