0

パネルを持っています。このパネルには、1 つのテキスト フィールドと 1 つのボタンがあります。テキスト フィールドには、いくつかの db 値を検索するためのフォーカス リスナーがあり、値が書き込まれていない場合は、タブを押すと終了表示メッセージが表示されます。ただし、テキスト フィールドを編集し、Tab キーを押さずにボタンをクリックすると、1) フォーカスが失われ、2) アクション リスナーが発生します。

問題は、フォーカスの呼び出しが失われたことです。アクションリスナーは、テキストフィールドに編集するときに呼び出す必要があります--->ボタンがクリックされました(テキストフィールドにタブなし)

あなたのアイデアを教えてください。

4

1 に答える 1

1

ユーザーが何かを入力した後に離れた場合は、ロストフォーカスを呼び出さずにアクションリスターを呼び出します

さて、まず、フォーカスを失ってしまうことはできませんが、無視することはできます

public void focusLost(FocusEvent evt) {
   if (textField.getText().length() > 0) {
       // call action
   } else {
      // show error message
   }
}

さて、フォーカスイベントを無視できるようになったので、アクションイベントを発生させる方法は?

まあ、驚くべきことに、これは本当に簡単です

button.doClick();
于 2012-08-01T11:20:53.330 に答える