コンストラクターにpublic class JdbDateTextField extends JTextField
and を追加しthis.setInputVerifier(new ValidDateOrEmptyVerifier());
ます。
class ValidDateOrEmptyVerifier extends InputVerifier
入力の形式を確認するために使用します。
入力の形式が間違っていて、ユーザーが のフォーカスを失った場合JdbDateTextField
、 に戻りfalse
、ValidDateOrEmptyVerifier
再び にフォーカスがJdbDateTextField
戻ります。
これは、ユーザーが からJdbDateTextField
別の textField に切り替えるか、ボタンを押した場合に機能します。ボタンを押したときに の入力の形式が間違っている場合、ボタンに対するアクションは実行されず、フォーカスは のままJdbDateTextField
です。
これはまさに私が欲しいものです。ユーザーはJdbDateTextField
、有効な文字列を入力するまで、 を離れることはできません。
問題は、JdbDateTextField
が JPanel にあるJTabbedPane
ため、いくつかのタブを持つ GUI があることです。
選択した場合はJdbDateTextField
、無効な入力を入力してから、別のタブを直接クリックしてもタブが切り替わります。そのため、間違った入力を提供することができました。
私の質問は:
入力検証を実行する前に他のイベントを実行することを許可しない方法はありますか?true