Spec-Zone.ru › OpenJDK 25

Класс 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 назначен source компоненту Swing, чтобы проверить, разрешена ли запрошенная передача фокуса от 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

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

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 назначен source компоненту Swing, чтобы проверить, разрешена ли запрошенная передача фокуса от 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/InputVerifier.html

Spec-Zone.ru

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