概要

InputVerifierを設定したJTextFieldの値が適切な形式でない場合のフォーカス移動動作をテストします。

サンプルコード

button2.setVerifyInputWhenFocusTarget(false);
View in GitHub: Java, Kotlin

解説

上記のサンプルでは、フォーカスが別のコンポーネントに移動する時に現在フォーカスを持つコンポーネントのInputVerifierで値を検証するかをテストしています。

  • Default
    • JButtonのデフォルトでgetVerifyInputWhenFocusTarget()trueisFocusable()true
    • すべてのJTextFieldの値をクリアして自身にフォーカスが移動するが、フォーカスの存在したJTextFieldに入力されている値がIntegerでない場合警告音が鳴る
  • setFocusable(false)
    • setFocusable(false)を設定
    • すべてのJTextFieldの値をクリアするが、フォーカスは移動しないためフォーカスの存在したJTextFieldに入力されている値がIntegerでない場合でも警告音は鳴らない(設定されているInputVerifier#verify(...)は呼ばれない)
  • setVerifyInputWhenFocusTarget(false)
    • setVerifyInputWhenFocusTarget(false)を設定
    • すべてのJTextFieldの値をクリアして自身にフォーカスが移動するが、フォーカスの存在したJTextFieldに入力されている値がIntegerでない場合でも警告音は鳴らない(設定されているInputVerifier#verify(...)は呼ばれない)

参考リンク

コメント