ホームページ >Java >&#&チュートリアル >Enter キーを押さずにテキスト フィールドの入力を即座に検証するにはどうすればよいですか?

Enter キーを押さずにテキスト フィールドの入力を即座に検証するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-14 21:08:11349ブラウズ

How Can I Get Immediate Input Validation in a Text Field Without Pressing Enter?

テキスト フィールド値変更リスナーによる即時入力検証の取得

ユーザー入力に対する迅速なフィードバックを得るには、メッセージ ボックスが次のように表示されることが重要です。ユーザーがテキストフィールドのテキストを変更するとすぐに。ただし、Enter キーを押した後にのみメッセージ ボックスがトリガーされるという問題に直面したので、コードを詳しく調べて解決策を見つけてみましょう。

コードでは、テキスト フィールドで ActionListener が使用されており、アクションが発生したときに呼び出されます。 Enter キーを押すことも含めて、フィールド上で発生します。この動作は、Enter キーを使用した後にメッセージ ボックスが表示される理由を説明します。これに対処するには、テキスト フィールドの値の変更に対してより即時に応答する必要があります。

解決策は、テキスト フィールドの基になるドキュメントにリスナーを追加することです。ドキュメントはテキスト フィールドごとに自動的に作成され、テキストの内容を表します。ドキュメント内の変更を監視することで、ユーザーの入力方法に関係なく、テキスト内のあらゆる変更に対応できます。

更新されたコード スニペットは次のとおりです:

textField.getDocument().addDocumentListener(new DocumentListener() {
  public void changedUpdate(DocumentEvent e) {
    warn();
  }
  public void removeUpdate(DocumentEvent e) {
    warn();
  }
  public void insertUpdate(DocumentEvent e) {
    warn();
  }

  public void warn() {
     if (Integer.parseInt(textField.getText())<=0){
       JOptionPane.showMessageDialog(null,
          "Error: Please enter number bigger than 0", "Error Message",
          JOptionPane.ERROR_MESSAGE);
     }
  }
});

この変更されたコードは、 DocumentListener をテキスト フィールドに追加し、ドキュメント レベルでの変更に反応します。 3 つの異なる Update メソッド (changed、remove、insert) は、テキストに加えられた変更の種類に基づいて呼び出され、ユーザーの入力を即座に検証できるようになります。

以上がEnter キーを押さずにテキスト フィールドの入力を即座に検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。