Как мне запустить действие, когда пользователь покидает JTextBox?
-
19-09-2019 - |
Вопрос
У меня есть JTextField , и я бы хотел, чтобы система выполняла некоторую обработку того, что вводил пользователь, всякий раз, когда пользователь покидает текстовое поле.Однако ActionListener, который вы можете добавить только к JTextField, срабатывает только тогда, когда пользователь нажимает enter.
Я бы хотел, чтобы процедура обработки запускалась всякий раз, когда пользователь покидает текстовое поле любым способом - вкладками, щелкает по нему, нажимает enter и т.д.(Обработка, о которой идет речь, заключается в сохранении текста, введенного пользователем, в соответствующем объекте данных, ничего особенного.)
Мой google-fu потерпел неудачу в этом вопросе:Я уверен, что это возможно, я просто не вижу, как это сделать.
Решение
Стоит отметить, что это слушатель относительно низкого уровня.Вкл . JComboBox
это не сработает, пока вы не найдете текстовое поле (и, возможно, кнопку), которое вставляет конкретный PL & F.Swing немного странный в этом смысле (среди многих других способов).
Хотя, за мои деньги, некосетические изменения, которые происходят, когда фокус покидает поле, ухудшают пользовательский опыт.Гораздо лучше вносить любые соответствующие изменения при каждом изменении с помощью прослушивателя в документе текстового поля.
Другие советы
Если вы хотите отредактировать текст по мере его ввода, вам следует использовать DocumentFilter.
Если вы хотите проверить текст как целостный объект, вы можете использовать InputVerifier.