В GXT методы MessageBox
являются асинхронными, что означает, что приложение не «блокируется», пока отображается окно сообщения.GXT KeyListener.componentKeyDown() немедленно закрывает MessageBox.alert()
Я использую KeyListener
для обработки нажатия клавиш в форме (чтобы увеличить удобство использования, то есть разрешить отправку формы клавишей ввода) и впоследствии отключить поля формы, в то время как приложение обрабатывает учетные данные пользователя. Если они неверны, я показываю MessageBox.alert()
, а затем снова включаю поля формы. Однако, поскольку alert()
сразу возвращается, поля формы снова становятся доступными снова, что позволяет пользователю вводить данные без закрытия предупреждения.
Решение заключается в использовании обратного вызова в alert()
; однако вводное нажатие не только приводит к отправке формы, но также приводит к немедленному отклонению предупреждения (как если бы форма и поле сообщения обрабатывали ключ ввода). Как я могу открыть окно предупреждения до тех пор, пока пользователь не начнет вводить его во второй раз или не нажмет кнопку «ОК»?