• category: swing folder: VerifyInputWhenFocusTarget title: InputVerifierを設定したJTextFieldの値が不正な場合のフォーカス移動 tags: [JTextField, InputVerifier, Focus] author: aterai pubdate: 2014-03-10T10:15:22+09:00 description: InputVerifierを設定したJTextFieldの値が適切な形式でない場合のフォーカス移動動作をテストします。 image: https://lh4.googleusercontent.com/-0s6ChUywZz8/Ux0P0IVi99I/AAAAAAAACBY/8hZOhY0SCI4/s800/VerifyInputWhenFocusTarget.png

概要

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(...)は呼ばれない)

参考リンク

コメント