Класс InputVerifier
- java.lang.Object
-
- javax.swing.InputVerifier
public abstract class InputVerifier extends Object
Цель этого класса — помочь клиентам обеспечить плавную навигацию по фокусу в графическом интерфейсе пользователя (GUI) с текстовыми полями. Такие GUI часто должны гарантировать, что введенный пользователем текст является допустимым (например, что он имеет правильный формат) перед тем, как разрешить пользователю выйти из текстового поля. Для этого клиенты создают подкласс InputVerifier и, используя метод JComponent класса JComponent, прикрепляют экземпляр своего подкласса к JComponent, чьи данные ввода они хотят валидировать. Перед передачей фокуса на другой компонент Swing, который его запросил, вызывается метод shouldYieldFocus валидатора ввода. Фокус передается только в том случае, если этот метод возвращает true.
В следующем примере есть два текстовых поля, первое из которых ожидает, что пользователь введет строку "pass". Если эта строка введена в первое текстовое поле, пользователь может перейти ко второму полю, щелкнув по нему или нажав клавишу TAB. Однако, если в первое текстовое поле введена другая строка, пользователь не сможет передать фокус на второе текстовое поле.
import java.awt.*;
import java.util.*;
import java.awt.event.*;
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 out of it
// only after that string is typed in by the user.
public class VerifierTest extends JFrame {
public VerifierTest() {
JTextField tf1 = new JTextField ("Type \"pass\" here");
getContentPane().add (tf1, BorderLayout.NORTH);
tf1.setInputVerifier(new PassVerifier());
JTextField tf2 = new JTextField ("TextField2");
getContentPane().add (tf2, BorderLayout.SOUTH);
WindowListener l = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
addWindowListener(l);
}
class PassVerifier extends InputVerifier {
public boolean verify(JComponent input) {
JTextField tf = (JTextField) input;
return "pass".equals(tf.getText());
}
}
public static void main(String[] args) {
Frame f = new VerifierTest();
f.pack();
f.setVisible(true);
}
}
- Since:
- 1.3
Конструкторы
| Конструктор и описание |
|---|
InputVerifier()
|
Методы
| Модификатор и тип | Метод и описание |
|---|---|
boolean |
shouldYieldFocus(JComponent input) Вызывает |
abstract boolean |
verify(JComponent input) Проверяет, является ли ввод 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 допустимым. Этот метод не должен иметь побочных эффектов. Он возвращает булево значение, указывающее состояние ввода аргумента.
- Parameters:
-
input- проверяемый JComponent - Returns:
-
trueпри валидном вводе,falseпри невалидном вводе - See Also:
-
JComponent.setInputVerifier(javax.swing.InputVerifier),JComponent.getInputVerifier()
shouldYieldFocus
public boolean shouldYieldFocus(JComponent input)
Вызывает verify(input) для проверки допустимости ввода. Этот метод может иметь побочные эффекты. В частности, этот метод вызывается, когда пользователь пытается переместить фокус из компонента аргумента в другой компонент Swing в этом окне. Если этот метод возвращает true, то фокус передается нормально; если он возвращает false, то фокус остается в компоненте аргумента.
- Parameters:
-
input- проверяемый JComponent - Returns:
-
trueпри валидном вводе,falseпри невалидном вводе - See Also:
-
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.