1. считать в KeyListener'e количество нажатий клавиш
2. унаследоваться от документа (например javax.swing.text.PlainDocument) и изменить реализацию метода insertString,
которая не даст вставлять строки превышающие заданную длину.
А дальше либо использовать JTextField.setDocument(Document doc), либо даже консттруктор JTextField(Document doc, String text, int columns);
Лично мне второй способ нравится более кошерным
