java.lang.Object
javax.swing.InputVerifier
public abstract class InputVerifier extends Object
このクラスは、Swingコンポーネントの検証メカニズムを提供します。 GUIは、多くの場合、ユーザーが入力フォーカスをナビゲートできるようにする前に、コンポーネントが有効な状態にあることを確認する必要があります。 これを行うには、クライアントは
InputVerifierのサブクラスを作成し、JComponent setInputVerifierメソッドを使用して、そのサブクラスのインスタンスをフォーカス転送操作のソースであるJComponentにアタッチします。 InputVerifierは、フォーカスを拒否する可能性があるフォーカス転送のターゲットに対して検証する機能も提供します。 ソースSwingコンポーネントからターゲットSwingコンポーネントにフォーカスが移る前に、入力検証器shouldYieldFocus(source, target)メソッドが呼び出されます。 そのメソッドがtrueを返した場合にのみフォーカスが転送されます。 
 次の例では2つのテキスト・フィールドがあり、最初のフィールドでは、ユーザーから文字列「pass」が入力されるのを待っています。 その文字列が最初のテキスト・フィールドに入力された場合、または2番目のテキスト・フィールドに"accept"文字列が含まれている場合、ユーザーは2番目のテキスト・フィールドをクリックするか、Tabキーを押してフォーカスを進めることができます。 ただし、別の文字列が最初のテキスト・フィールドに入力され、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
- 
コンストラクタのサマリーコンストラクタ コンストラクタ 説明 InputVerifier()
- 
メソッドのサマリー修飾子と型 メソッド 説明 booleanshouldYieldFocus(JComponent input)Deprecated.代わりにshouldYieldFocus(JComponent, JComponent)を使用してください。booleanshouldYieldFocus(JComponent source, JComponent target)このInputVerifierがsourceSwingコンポーネントに割り当てられ、sourceからtargetへのリクエストされたフォーカス転送が許可されているかどうかを確認する場合は、Swingによって呼び出されます。abstract booleanverify(JComponent input)JComponentの入力が有効かどうかを確認します。booleanverifyTarget(JComponent target)フォーカスを受け取るターゲットJComponentがそれを受け入れる準備ができているかどうかを確認します。
- 
コンストラクタの詳細- 
InputVerifierpublic InputVerifier()
 
- 
- 
メソッドの詳細- 
verifypublic abstract boolean verify(JComponent input)JComponentの入力が有効かどうかを確認します。 このメソッドには副作用はありません。 引数の入力ステータスを示すboolean型を返します。- パラメータ:
- input- 検証するJComponent
- 戻り値:
- 有効な場合はtrue、無効な場合はfalse
- 関連項目:
- JComponent.setInputVerifier(javax.swing.InputVerifier),- JComponent.getInputVerifier()
 
- 
shouldYieldFocus@Deprecated(since="9")public boolean shouldYieldFocus(JComponent input)Deprecated.代わりにshouldYieldFocus(JComponent, JComponent)を使用してください。verify(input)を呼び出して入力が有効であることを確認します。 このメソッドには副作用があります。 特にこのメソッドが呼び出されるのは、ユーザーが引数コンポーネントからこのウィンドウにある別のSwingコンポーネントにフォーカスを進めようとしたときです。 このメソッドがtrueを返した場合、フォーカスは正常に転送されます。falseが返された場合、フォーカスは引き数コンポーネントに残ります。- パラメータ:
- input- 検証するJComponent
- 戻り値:
- 有効な場合はtrue、無効な場合はfalse
- 関連項目:
- JComponent.setInputVerifier(javax.swing.InputVerifier),- JComponent.getInputVerifier()
 
- 
verifyTargetpublic boolean verifyTarget(JComponent target)フォーカスを受け取るターゲットJComponentがそれを受け入れる準備ができているかどうかを確認します。 このメソッドは、フォーカス転送のターゲットを検証する必要がある場合にのみオーバーライドする必要があります。 このメソッドには副作用はありません。 引数の入力ステータスを示すboolean型を返します。- 実装要件:
- デフォルトでは、このメソッドはtrueを返します。
- パラメータ:
- target- 検証するターゲットJComponent
- 戻り値:
- 有効な場合はtrue、無効な場合はfalse
- 導入されたバージョン:
- 9
- 関連項目:
- JComponent.setInputVerifier(javax.swing.InputVerifier),- JComponent.getInputVerifier()
 
- 
shouldYieldFocuspublic boolean shouldYieldFocus(JComponent source, JComponent target)このInputVerifierがsourceSwingコンポーネントに割り当てられ、sourceからtargetへのリクエストされたフォーカス転送が許可されているかどうかを確認する場合は、Swingによって呼び出されます。 このメソッドには副作用があります。 このメソッドがtrueを返した場合、フォーカスは正常に転送されます。falseを返すと、フォーカスは最初の引数コンポーネントに残ります。- 実装要件:
- このメソッドの基本的な実装では、ソース・コンポーネントとターゲット・コンポーネントの両方が有効な状態になるように、verify(input)とverifyTarget(input)から得られた結果の連結を返します。
- パラメータ:
- source- フォーカス転送のソースJComponent
- target- フォーカス転送のターゲットJComponent
- 戻り値:
- 有効な場合はtrue、無効な場合はfalse
- 導入されたバージョン:
- 9
- 関連項目:
- JComponent.setInputVerifier(javax.swing.InputVerifier),- JComponent.getInputVerifier()
 
 
-