GXT では、MessageBox
メソッドは非同期です。つまり、メッセージ ボックスが表示されている間、アプリケーションは「ロックアップ」しません。
を使用しKeyListener
てフォームでの Enter キーの押下を処理し (使いやすさを向上させるため、つまり、Enter キーでフォームを送信できるようにするため)、その後、アプリケーションがユーザーの資格情報を処理している間、フォーム フィールドを無効にします。それらが正しくない場合はMessageBox.alert()
、フォーム フィールドを表示してから再度有効にします。ただし、alert()
すぐに戻るため、フォーム フィールドはすぐに再び使用可能になり、ユーザーはアラートを閉じずにデータを入力できます。
解決策は、でコールバックを使用することalert()
です。ただし、Enter キーを押すと、フォームが送信されるだけでなく、アラートがすぐに閉じられます (フォームとメッセージ ボックスの両方が Enter キーを処理しているかのように)。ユーザーが 2 回目に Enter キーを押すか、[OK] ボタンをクリックするまで、アラート ボックスを開いたままにしておくにはどうすればよいですか?