3

コンストラクターにpublic class JdbDateTextField extends JTextFieldand を追加しthis.setInputVerifier(new ValidDateOrEmptyVerifier());ます。

class ValidDateOrEmptyVerifier extends InputVerifier入力の形式を確認するために使用します。

入力の形式が間違っていて、ユーザーが のフォーカスを失った場合JdbDateTextField、 に戻りfalseValidDateOrEmptyVerifier再び にフォーカスがJdbDateTextField戻ります。

これは、ユーザーが からJdbDateTextField別の textField に切り替えるか、ボタンを押した場合に機能します。ボタンを押したときに の入力の形式が間違っている場合、ボタンに対するアクションは実行されず、フォーカスは のままJdbDateTextFieldです。

これはまさに私が欲しいものです。ユーザーはJdbDateTextField 、有効な文字列を入力するまで、 を離れることはできません。

問題は、JdbDateTextFieldが JPanel にあるJTabbedPaneため、いくつかのタブを持つ GUI があることです。

選択した場合はJdbDateTextField、無効な入力を入力してから、別のタブを直接クリックしてもタブが切り替わります。そのため、間違った入力を提供することができました。

私の質問は:

入力検証を実行する前に他のイベントを実行することを許可しない方法はありますか?true

4

2 に答える 2