モジュール java.desktop
パッケージ javax.swing

クラスInputVerifier

java.lang.Object
javax.swing.InputVerifier

public abstract class InputVerifier extends Object
このクラスは、Swingコンポーネントの検証メカニズムを提供します。 GUIでは、ユーザーが入力フォーカスをナビゲートできるようにする前に、コンポーネントが有効な状態であることを確認する必要があります。 これを行うには、クライアントはInputVerifierのサブクラスを作成し、JComponentsetInputVerifierメソッドを使用して、そのサブクラスのインスタンスをフォーカス転送操作のソースであるJComponentにアタッチします。 InputVerifierでは、フォーカスが拒否される可能性があるフォーカス転送のターゲットに対して検証することもできます。 ソースSwingコンポーネントからターゲットSwingコンポーネントにフォーカスが転送される前に、入力ベリファイアのshouldYieldFocus(source, target)メソッドがコールされます。 そのメソッドがtrueを返した場合にのみフォーカスが転送されます。

次の例では2つのテキスト・フィールドがあり、最初のフィールドでは、ユーザーから文字列「pass」が入力されるのを待っています。 最初のテキスト・フィールドにその文字列が入力されているか、2番目のテキスト・フィールドに"accept"文字列が含まれている場合、ユーザーはその文字列内をクリックするか、TABを押して2番目のテキスト・フィールドにフォーカスを進めることができます。 ただし、最初のテキスト・フィールドに別の文字列が入力され、2番目のテキスト・フィールドに"accept"が含まれない場合、ユーザーはフォーカスを2番目のテキスト・フィールドに転送できません。

 import java.awt.*;
 import javax.swing.*;

 // This program demonstrates the use of the Swing InputVerifier class.
 // It creates two text fields; the first of the text fields expects the
 // string "pass" as input, and will allow focus to advance to the second text
 // field if either that string is typed in by the user or the second
 // field contains "accept" string.

 public class VerifierTest extends JFrame {

     public VerifierTest() {
         JTextField field1 = new JTextField("Type \"pass\" here");
         JTextField field2 = new JTextField("or \"accept\" here");
         getContentPane().add(field1, BorderLayout.NORTH);
         getContentPane().add(field2, BorderLayout.SOUTH);

         field1.setInputVerifier(new InputVerifier() {
             public boolean verify(JComponent input) {
                return "pass".equals(((JTextField) input).getText());
             }

             public boolean verifyTarget(JComponent input) {
                 return "accept".equals(((JTextField) input).getText());
             }

             public boolean shouldYieldFocus(JComponent source,
                                                          JComponent target) {
                 return verify(source) || verifyTarget(target);
             }
         });

         pack();
         setVisible(true);
     }

     public static void main(String[] args) {
         SwingUtilities.invokeLater(VerifierTest::new);
     }
 }
 

導入されたバージョン:
1.3
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    サブクラスが呼び出すためのコンストラクタ。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    非推奨。
    代わりにshouldYieldFocus(JComponent, JComponent)を使用してください。
    boolean
    このInputVerifiersource Swingコンポーネントに割り当てられている場合にSwingによって呼び出され、リクエストされたフォーカスがsourceからtargetに転送されるかどうかがチェックされます。
    abstract boolean
    JComponentの入力が有効かどうかを確認します。
    boolean
    フォーカスを受信するターゲットJComponentがそれを受け入れる準備ができているかどうかを確認します。

    クラスjava.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • InputVerifier

      protected InputVerifier()
      サブクラスが呼び出すためのコンストラクタ。
  • メソッドの詳細

    • verify

      public abstract boolean verify(JComponent input)
      JComponentの入力が有効かどうかを確認します。 このメソッドには副作用はありません。 引数の入力ステータスを示すboolean型を返します。
      パラメータ:
      input - 検証するJComponent
      戻り値:
      有効な場合はtrue、無効な場合はfalse
      関連項目:
    • shouldYieldFocus

      @Deprecated(since="9") public boolean shouldYieldFocus(JComponent input)
      非推奨。
      代わりにshouldYieldFocus(JComponent, JComponent)を使用してください。
      verify(input)を呼び出して入力が有効であることを確認します。 このメソッドには副作用があります。 特にこのメソッドが呼び出されるのは、ユーザーが引数コンポーネントからこのウィンドウにある別のSwingコンポーネントにフォーカスを進めようとしたときです。 このメソッドがtrueを返す場合、フォーカスは正常に転送されます。falseを返す場合、フォーカスは引数コンポーネントに残ります。
      パラメータ:
      input - 検証するJComponent
      戻り値:
      有効な場合はtrue、無効な場合はfalse
      関連項目:
    • verifyTarget

      public boolean verifyTarget(JComponent target)
      フォーカスを受信するターゲットJComponentがそれを受け入れる準備ができているかどうかを確認します。 このメソッドは、フォーカス転送のターゲットを検証する必要がある場合にのみオーバーライドする必要があります。 このメソッドには副作用はありません。 引数の入力ステータスを示すboolean型を返します。
      実装要件:
      デフォルトでは、このメソッドはtrueを返します。
      パラメータ:
      target - 検証するターゲットJComponent
      戻り値:
      有効な場合はtrue、無効な場合はfalse
      導入されたバージョン:
      9
      関連項目:
    • shouldYieldFocus

      public boolean shouldYieldFocus(JComponent source, JComponent target)
      このInputVerifiersource Swingコンポーネントに割り当てられている場合にSwingによって呼び出され、リクエストされたフォーカスがsourceからtargetに転送されるかどうかがチェックされます。 このメソッドには副作用があります。 このメソッドがtrueを返す場合、フォーカスは正常に転送されます。falseを返す場合、フォーカスは最初の引数コンポーネントに残ります。
      実装要件:
      このメソッドの基本的な実装では、ソース・コンポーネントとターゲット・コンポーネントの両方が有効な状態であることを確認するために、verify(input)およびverifyTarget(input)から取得した結果の結合が戻されます。
      パラメータ:
      source - フォーカス転送のソースJComponent
      target - フォーカス転送のターゲットJComponent
      戻り値:
      有効な場合はtrue、無効な場合はfalse
      導入されたバージョン:
      9
      関連項目: