Как запретить ввод символов в textfield java
Для запрета ввода символов можно использовать класс 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); > >
Запретить ввод с клавиатуры[Java] [закрыт]
Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.
Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.
Закрыт 7 лет назад .
Как в Java запретить ввод букв и использование пробела ?
Отслеживать
задан 1 сен 2016 в 13:39
329 3 3 серебряных знака 12 12 бронзовых знаков
Где именно? На каком UI?
1 сен 2016 в 13:42
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Можете использовать запрет на буквы и пробел, юзер сможет вводить только цифры:
JTextField textField = new JTextField(10); textField.addKeyListener(new KeyAdapter() < public void keyTyped(KeyEvent e) < char c = e.getKeyChar(); if ( ((c < '0') || (c >'9'))) < e.consume(); // игнорим введенные буквы и пробел >> >);
Если вам нужны какие-нибудь символы, то их код вы можете найти на странице Oracle и дописать в if :
if ( ((c < '0') || (c >'9')) && (c != KeyEvent.VK_PLUS)) < e.consume(); // разрешаем цифры и знак "+" >
Как можно ограничить ввод символов в JTextField?
Добрый день! Подскажите, как можно ограничить ввод символов в JTextField, чтобы вводились только цифры и «.», а остальные символы даже не выводились бы в TextField.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Можно ли в Microsoft office 2003 ограничить ввод определенных символов?
Добрый день. Возник следующий вопрос: Возможно ли в office 2003 поставить ограничения на ввод.
Можно ли без сторонних функций ограничить ввод символов в консоль ?
Хочу написать это без функций, вручную все сделать. (вроде бы) Во всех темах, которые тут находил.
Каким образом можно ограничить ввод символов и букв в edittext
Каким образом ограничить ввод символов и букв в edittext?
Как ограничить ввод символов в поля формы
1. Как разрешить ввод _только_ определенных символов в поле формы (только цифры). 2. Как.
284 / 264 / 173
Регистрация: 27.07.2014
Сообщений: 584
Регистрация: 14.03.2013
Сообщений: 150
а не могли бы вы показать на примере?
284 / 264 / 173
Регистрация: 27.07.2014
Сообщений: 584
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.swing.*; public class Test extends JFrame { public Test() { final JLabel label = new JLabel(); final JTextField tf1 = new JTextField (); JButton button = new JButton("Очистить"); getContentPane().add (tf1, BorderLayout.NORTH); label.setForeground(Color.red); label.setFont(new Font("Consolas",Font.PLAIN,16)); add(label,BorderLayout.SOUTH); add(button,BorderLayout.EAST); tf1.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { Pattern p = Pattern.compile("(([0-9])([\\.]))+"); Matcher m = p.matcher(tf1.getText()); if(!m.matches()) { tf1.setEnabled(false); label.setText("Нажмите на кнопку \"Очистить\" Вводите только цифры и символ \".\""); } } }); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { tf1.setText(""); tf1.setEnabled(true); } }); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setSize(640,340); } public static void main(String[] args) { Frame f = new Test(); f.setVisible(true); } }
Как ограничить ввод символов в консоли для типа данных Char? Ограничение ввода символов в консоли для типа данных Char.
Оно и так есть. cin.getline(str,n) — тут n — ограничение количества вводимых символов.
Остальные ответы
Можно вводить посимвольно и считать, сколько велось.
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.