ホームページ > Java > &#&チュートリアル > Enterを押さずにJTextField値の変更を即座に検出する方法は?

Enterを押さずにJTextField値の変更を即座に検出する方法は?

Linda Hamilton
リリース: 2024-12-24 08:07:17
オリジナル
741 人が閲覧しました

How to Detect JTextField Value Changes Immediately Without Pressing Enter?

JTextField の値変更リスナー

多くの開発者は、ユーザーがテキスト フィールドで Enter キーを押した後にのみアクション リスナーがトリガーされるという問題に遭遇しています。 。これを修正するには、値の変更をすぐに検出できる別のアプローチを採用する必要があります。

解決策は、「ActionListener」の代わりに「DocumentListener」を使用することです。テキスト フィールドの基になるドキュメントは、その内容の変更を自動的にリッスンします。このドキュメントにリスナーを追加すると、ユーザーがテキストを変更するとすぐに特定のアクションを実行できます。

「DocumentListener」を組み込んだ変更されたコード スニペットは次のとおりです。

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);
     }
  }
});
ログイン後にコピー

Thisコードは、テキスト フィールドへの入力が条件 (正の整数) を満たさなくなるとすぐにエラー メッセージをトリガーします。 Enter キーを押したり、追加のアクションを実行したりする必要はありません。

そのため、Enter キーを押すように「ActionEvents」をリッスンする「ActionListener」に依存する代わりに、ドキュメント内の変更を監視する「DocumentListener」を利用します。 、テキストの変更に対して即座に反応できるようになります。

以上がEnterを押さずにJTextField値の変更を即座に検出する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート