テキスト フィールド値変更リスナーによる即時入力検証の取得
ユーザー入力に対する迅速なフィードバックを得るには、メッセージ ボックスが次のように表示されることが重要です。ユーザーがテキストフィールドのテキストを変更するとすぐに。ただし、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 サイトの他の関連記事を参照してください。