Hi!<br>
<br>
Unfortunately the columns only used when the swing estimate the preferred size. I give you a little code. It is an another way, maybe simply than listeners, I do not know.<br>
**********<br>
import java.awt.event.*;<br>
import javax.swing.*;<br>
import javax.swing.text.*;<br>
<br>
public class LimitedText {<br>
static JFrame frame;<br>
<br>
public static void main(String[] args) {<br>
frame=new JFrame("Limited Text-Length JTextField");<br>
frame.addWindowListener(new WindowAdapter() {<br>
public void windowClosing(WindowEvent e) {System.exit(0);}<br>
});<br>
frame.getContentPane().add("North", new LimitedField(5));<br>
frame.pack();<br>
frame.setSize(320, 200);<br>
frame.setVisible(true);<br>
}<br>
}<br>
<br>
class LimitedField extends JTextField {<br>
int maxLength;<br>
<br>
LimitedField(int cols) {<br>
super(cols);<br>
((LimitedDocument) getDocument()).setMaxLength(cols);<br>
}<br>
<br>
protected Document createDefaultModel() {<br>
return new LimitedDocument();<br>
}<br>
<br>
static class LimitedDocument extends PlainDocument {<br>
int maxLength;<br>
<br>
public void setMaxLength(int maxLength) {<br>
this.maxLength=maxLength;<br>
}<br>
<br>
public void insertString(int offs, String str, AttributeSet a) <br>
throws BadLocationException {<br>
if (str==null) { return; }<br>
else {<br>
if (offs>maxLength-1) {<br>
java.awt.Toolkit.getDefaultToolkit().beep();<br>
return;<br>
}<br>
else {<br>
super.insertString(offs, str.substring(0, Math.min(str.length(),<br>
maxLength-offs)), a);<br>
}<br>
}<br>
}<br>
}<br>
}<br>
<br>
Good luck. Bye, Otto.<br>