Как ограничить ввод символов в java
Перейти к содержимому

Как ограничить ввод символов в java

  • автор:

Как запретить ввод символов в 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *