Класс InputVerifier

public abstract class InputVerifier
extends Object

Этот класс предоставляет механизм валидации для компонентов Swing. Графические интерфейсы пользователя (GUI) часто нуждаются в обеспечении того, чтобы компоненты находились в валидном состоянии, прежде чем разрешить пользователю перемещение фокуса ввода. Для этого клиенты создают подкласс InputVerifier и, используя метод JComponent класса JComponent, прикрепляют экземпляр своего подкласса к компоненту JComponent, который является источником операции передачи фокуса. InputVerifier также предоставляет возможность валидации по отношению к цели передачи фокуса, которая может отклонить фокус. Перед передачей фокуса от исходного компонента Swing к целевому компоненту Swing вызывается метод shouldYieldFocus(source, target) валидатора ввода. Фокус передаётся только если этот метод возвращает true.

Следующий пример демонстрирует два текстовых поля, где первое поле ожидает ввода строки "pass" пользователем. Если в первом текстовом поле введена эта строка или во втором текстовом поле содержится строка "accept", то пользователь сможет переключиться на второе текстовое поле, щелкнув по нему или нажав клавишу TAB. Однако, если в первом текстовом поле введена другая строка, а во втором текстовом поле отсутствует строка "accept", то пользователь не сможет передать фокус во второе текстовое поле.

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);

         field.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);
     }
 }
Since:
1.3

Конструкторы

КонструкторОписание
InputVerifier()

Методы

Модификатор и типМетодОписание
booleanshouldYieldFocus​(JComponent input)

Устарело.

Используйте shouldYieldFocus(JComponent, JComponent) вместо этого.

booleanshouldYieldFocus​(JComponent source, JComponent target)

Вызывается Swing, если этот InputVerifier назначен компоненту Swing source, чтобы проверить, разрешена ли запрошенная передача фокуса от source к target.

abstract booleanverify​(JComponent input)

Проверяет, является ли ввод компонента JComponent валидным.

booleanverifyTarget​(JComponent target)

Проверяет, готов ли целевой компонент JComponent принять фокус.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Конструкторы

InputVerifier

public InputVerifier()

Методы

verify

public abstract boolean verify(JComponent input)

Проверяет, является ли ввод компонента JComponent валидным. Этот метод не должен иметь побочных эффектов. Он возвращает булево значение, указывающее состояние ввода аргумента.

Параметры:
input - компонент JComponent для проверки
Возвращает:
true при валидном вводе, false при невалидном вводе
См. также:
JComponent.setInputVerifier(javax.swing.InputVerifier), JComponent.getInputVerifier()

shouldYieldFocus

@Deprecated(since="9")
public boolean shouldYieldFocus(JComponent input)
Устарело.
Используйте shouldYieldFocus(JComponent, JComponent) вместо этого.

Вызывает verify(input) для проверки валидности ввода. Этот метод может иметь побочные эффекты. В частности, этот метод вызывается, когда пользователь пытается переместить фокус из компонента-аргумента в другой компонент Swing в этом окне. Если этот метод возвращает true, то фокус передаётся нормально; если он возвращает false, то фокус остаётся в компоненте-аргументе.

Параметры:
input - компонент JComponent для проверки
Возвращает:
true при валидном вводе, false при невалидном вводе
См. также:
JComponent.setInputVerifier(javax.swing.InputVerifier), JComponent.getInputVerifier()

verifyTarget

public boolean verifyTarget(JComponent target)

Проверяет, готов ли целевой компонент JComponent принять фокус. Этот метод следует переопределять только в случае необходимости валидации цели передачи фокуса. Этот метод не должен иметь побочных эффектов. Он возвращает булево значение, указывающее состояние ввода аргумента.

Требования к реализации:
По умолчанию этот метод возвращает true.
Параметры:
target - целевой компонент JComponent для проверки
Возвращает:
true при валидном вводе, false при невалидном вводе
Since:
9
См. также:
JComponent.setInputVerifier(javax.swing.InputVerifier), JComponent.getInputVerifier()

shouldYieldFocus

public boolean shouldYieldFocus(JComponent source,
                                JComponent target)

Вызывается Swing, если этот InputVerifier назначен компоненту Swing source, чтобы проверить, разрешена ли запрошенная передача фокуса от source к target. Этот метод может иметь побочные эффекты. Если этот метод возвращает true, то фокус передаётся нормально; если он возвращает false, то фокус остаётся в первом компоненте-аргументе.

Требования к реализации:
Базовая реализация этого метода возвращает конъюнкцию результатов, полученных из verify(input) и verifyTarget(input), чтобы убедиться, что и исходный, и целевой компоненты находятся в валидном состоянии.
Параметры:
source - исходный компонент JComponent передачи фокуса
target - целевой компонент JComponent передачи фокуса
Возвращает:
true при валидном вводе, false при невалидном вводе
Since:
9
См. также:
JComponent.setInputVerifier(javax.swing.InputVerifier), JComponent.getInputVerifier()

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/InputVerifier.html

Spec-Zone .ru
спецификации, руководства, описания, API