私のアプリケーションには、ユーザーが特定の方法でフォーマットされた入力のみを入力できる JTextField があります。フィールドへの入力が有効かどうかをチェックし、有効でない場合はダイアログを表示するメソッドがあります。これが発生した後、フォーカスをテキスト フィールドに戻して、ユーザーが間違いを修正し、適切にフォーマットされた入力を入力できるようにします。JTextField 自体に requestFocus() を呼び出すことでこれを実行しようとしましたが、これは半分しか機能していないようです。JTextField には点滅するカーソルが表示されますが、テキスト フィールドをもう一度クリックするまで実際にテキストを入力することはできません。呼び出す必要がある別のメソッドはありますか? ドキュメントには他に何も見つかりませんでした。
1 に答える
1
これはまさにあなたが求めた解決策ではありませんが、javax.swing.InputVerifier を参照してください。このオブジェクトを使用すると、フィールドへの入力を検証し、形式が正しくない場合にフィールドからフォーカスが奪われるのを防ぐことができます。エラーを説明するダイアログを表示することはできないと思いますが (試すことはできますが)、「メッセージ領域」にメッセージを入れることは確かに可能です。
JComponent に InputVerifier を設定し、コンテンツの有効性をテストします。正しくない場合、JComponent はフォーカスを解放しません (エラー メッセージを書き込むことができます)。
于 2010-08-04T20:12:09.457 に答える