Spec-Zone.ru › OpenJDK 27

Класс InputVerifier

java.lang.Object
javax.swing.InputVerifier
public abstract class InputVerifier extends Object
Этот класс предоставляет механизм проверки для компонентов Swing. Часто графическим интерфейсам необходимо убедиться, что компоненты находятся в допустимом состоянии, прежде чем разрешить пользователю переместить фокус ввода. Для этого клиенты создают подкласс InputVerifier и с помощью метода setInputVerifier класса 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);

        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()
Модификатор Конструктор Описание
protected
Конструктор для вызова из подклассов.

Краткое описание методов

Модификатор и тип Метод Описание
boolean shouldYieldFocus(JComponent input)
Устарел.
вместо него используйте shouldYieldFocus(JComponent, JComponent).
boolean shouldYieldFocus(JComponent source, JComponent target)
Вызывается Swing, если этому InputVerifier назначен компонент Swing source, чтобы проверить, разрешена ли запрошенная передача фокуса от source к target.
abstract boolean verify(JComponent input)
Проверяет, допустим ли ввод компонента JComponent.
boolean verifyTarget(JComponent target)
Проверяет, готов ли целевой компонент JComponent, который получит фокус, принять его.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, «равен» ли этот объект другому объекту.
protected void finalize()
Устарел, будет удален: этот элемент API может быть удален в будущей версии.
Финализация устарела и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

InputVerifier

protected InputVerifier()
Конструктор для вызова из подклассов.

Подробное описание методов

verify

public abstract boolean verify(JComponent input)
Проверяет, допустим ли ввод компонента JComponent. Этот метод не должен иметь побочных эффектов. Он возвращает логическое значение, указывающее, допустим ли ввод аргумента.
Параметры:
input — компонент JComponent для проверки
Возвращает:
true, если ввод допустим, false, если ввод недопустим
См. также:
  • JComponent.setInputVerifier(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(InputVerifier)
  • JComponent.getInputVerifier()

verifyTarget

public boolean verifyTarget(JComponent target)
Проверяет, готов ли целевой компонент JComponent, который получит фокус, принять его. Переопределять этот метод следует только в том случае, если необходимо проверить целевой компонент передачи фокуса. Этот метод не должен иметь побочных эффектов. Он возвращает логическое значение, указывающее, допустим ли ввод аргумента.
Требования к реализации:
По умолчанию этот метод возвращает true.
Параметры:
target — целевой компонент JComponent для проверки
Возвращает:
true, если ввод допустим, false, если ввод недопустим
Начиная с:
9
См. также:
  • JComponent.setInputVerifier(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, если ввод недопустим
Начиная с:
9
См. также:
  • JComponent.setInputVerifier(InputVerifier)
  • JComponent.getInputVerifier()

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, общие сведения, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API