Как запустить действие, когда пользователь покидает JTextBox? - PullRequest
0 голосов
/ 06 октября 2009

У меня есть JTextField, и я хотел бы, чтобы система выполняла некоторую обработку того, что пользователь печатал каждый раз, когда пользователь покидает текстовое поле. Однако ActionListener, который вы можете добавить только к JTextField, срабатывает только тогда, когда пользователь нажимает enter.

Я бы хотел, чтобы подпрограмма обработки запускалась всякий раз, когда пользователь покидает текстовое поле любым способом - вкладками, щелчками из него, нажатием клавиши ввода и т. Д. соответствующий объект данных, ничего особенного.)

Мой гугл-фу не справился: я уверен, что это возможно, я просто не понимаю, как.

Ответы [ 2 ]

6 голосов
/ 06 октября 2009

Добавить FocusListener.

Стоит отметить, что это слушатель относительно низкого уровня. На JComboBox это не будет работать, если вы не найдете текстовое поле (и, возможно, кнопку), которое вставляет конкретный PL & F. Свинг немного странный в этом смысле (среди многих других способов).

Хотя за мои деньги не косметические изменения, которые происходят, когда фокус покидает поле, дают плохой пользовательский опыт. Гораздо лучше вносить любые соответствующие изменения в каждое изменение с помощью прослушивателя в документе текстового поля.

0 голосов
/ 06 октября 2009

Если вы хотите редактировать текст так, как он напечатан, вам следует использовать DocumentFilter.

Если вы хотите проверить текст как целостную сущность, вы можете использовать InputVerifier.

...