Я бы не стал использовать Document или DocumentFilter, если вы просто хотите ограничить количество символов в JTextField. Вы можете просто переопределить событие keyTyped (), как в следующем примере:
txtGuess = new JTextField();
txtGuess.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
if (txtGuess.getText().length() >= 3 ) // limit textfield to 3 characters
e.consume();
}
});
Это ограничивает количество символов в текстовом поле игры в угадывание 3 символами, переопределяя событие keyTyped и проверяя, есть ли в текстовом поле уже 3 символа - если это так, вы «потребляете» ключевое событие (например, ), чтобы он не обрабатывался как обычно.
Один из моих учеников задал этот вопрос, и ни один из других ответов в StackOverflow не был таким коротким, как ответ, который я дал им, поэтому я решил опубликовать его для обсуждения :). Ура! * * 1006