Spec-Zone.ru › OpenJDK 24

Класс InputVerifier

java.lang.Object
javax.swing.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);

         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, который будет получать фокус, принять его.

Методы, объявленные в классе java.lang.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(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 при невалидном вводе
С:
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 при невалидном вводе
С:
9
См. также:
  • JComponent.setInputVerifier(javax.swing.InputVerifier)
  • JComponent.getInputVerifier()

© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/InputVerifier.html

Spec-Zone.ru

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