Класс InputVerifier
public abstract class InputVerifier extends Object
InputVerifier и, используя метод JComponent класса JComponent, прикрепляют экземпляр своего подкласса к компоненту JComponent, который является источником операции переключения фокуса. Класс также предоставляет возможность валидации по отношению к целевому компоненту переключения фокуса, который может отклонить фокус. Перед переключением фокуса из исходного компонента 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);
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 |
Устарело. |
boolean |
shouldYieldFocus |
Вызывается Swing, если этот InputVerifier назначен компоненту Swing source, чтобы проверить, разрешено ли переключение фокуса от source к target. |
abstract boolean |
verify |
Проверяет, является ли ввод JComponent валидным. |
boolean |
verifyTarget |
Проверяет, готов ли целевой JComponent принять фокус. |
Подробное описание конструкторов
InputVerifier
protected InputVerifier()
Подробное описание методов
verify
public abstract boolean verify(JComponent input)
- Параметры:
-
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)
- Требования к реализации:
- По умолчанию этот метод возвращает
true. - Параметры:
-
target- целевой JComponent для проверки - Возвращает:
-
trueпри валидном вводе,falseпри невалидном вводе - С момента:
- 9
- См. также:
shouldYieldFocus
public boolean shouldYieldFocus(JComponent source, JComponent target)
InputVerifier назначен компоненту Swing source, чтобы проверить, разрешено ли переключение фокуса от source к target. Этот метод может иметь побочные эффекты. Если этот метод возвращает true, то фокус переключается нормально; если он возвращает false, то фокус остается в первом компоненте-аргументе.- Требования к реализации:
- Основная реализация этого метода возвращает конъюнкцию результатов, полученных от
verify(input)иverifyTarget(input), чтобы убедиться, что и исходный, и целевой компоненты находятся в валидном состоянии. - Параметры:
-
source- исходный JComponent переключения фокуса -
target- целевой JComponent переключения фокуса - Возвращает:
-
trueпри валидном вводе,falseпри невалидном вводе - С момента:
- 9
- См. также:
© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/InputVerifier.html
shouldYieldFocus(JComponent, JComponent)вместо этого.