Grazie mille! Nel frattempo avevo risolto così:Originariamente inviato da andbin
Per limitare JTextField si deve estendere PlainDocument:
Poi ad esempio:codice:import javax.swing.text.*; public class LimitedPlainDocument extends PlainDocument { private int maxSize; public LimitedPlainDocument (int maxSize) { this.maxSize = maxSize; } public void insertString (int offs, String str, AttributeSet a) throws BadLocationException { if (str == null) return; if (offs + str.length () > maxSize) str = str.substring (0, maxSize - offs); super.insertString (offs, str, a); } }
tuoTextField.setDocument (new LimitedPlainDocument (20));
ma la tua soluzione mi sembra più adatta ^^codice:private class MyKeyListener extends KeyAdapter { private String oldString; private int limit; public MyKeyListener(int limit) throws IllegalArgumentException { if (limit < 1) { throw new IllegalArgumentException("limit must be > 0"); } this.limit = limit; } @Override public void keyTyped(KeyEvent e) { if (category.getText().length() > limit) { e.consume(); } else { oldString = category.getText(); } } @Override public void keyReleased(KeyEvent e) { if (category.getText().length() > limit) { category.setText(oldString); } } }
Grazie ancora![]()

Rispondi quotando