Как запретить ввод символов в textfield java
Ответы
Сергей Якимович
28 января 2023
Для запрета ввода символов можно использовать класс InputVerifier
. Он предоставляет метод verify()
, который проверяет введенные данные и возвращает true или false, в зависимости от того, прошла ли проверка.
Например нижеприведенный код не позволит перейти ко второму полю, пока в первом будут символы кроме букв алфавита :
import javax.swing.*;
import java.awt.*;
import java.util.regex.Pattern;
public class App {
public static void main(String[] args) {
InputVerifier verifier = new InputVerifier() {
public boolean verify(JComponent input) {
JTextField textField = (JTextField) input;
return Pattern.matches("[a-zA-Z]+", textField.getText());
}
public boolean shouldYieldFocus(JComponent source, JComponent target) {
return verify(source);
}
};
JTextField field1 = new JTextField("only a-z and A-Z");
JTextField field2 = new JTextField();
field1.setInputVerifier(verifier);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(field1, BorderLayout.NORTH);
frame.getContentPane().add(field2, BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
}
}
1
0