Запретить ввод с клавиатуры[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(); // разрешаем цифры и знак "+" >
Как запретить ввод символов в 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); > >
Как ограничить ввод символов в консоли для типа данных Char? Ограничение ввода символов в консоли для типа данных Char.
Оно и так есть. cin.getline(str,n) — тут n — ограничение количества вводимых символов.
Остальные ответы
Можно вводить посимвольно и считать, сколько велось.
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.
Ограничение количества десятичных знаков в поле ввода чисел

Проблема ограничения количества десятичных знаков в поле для ввода чисел в HTML является типичной для многих начинающих разработчиков. Это особенно актуально для полей, которые предназначены для ввода цен, где обычно требуется точность до двух десятичных знаков.
В HTML есть встроенный элемент для ввода чисел, input с атрибутом type=»number» . Он позволяет вводить числа с любым количеством знаков после запятой.
Однако HTML не предоставляет прямого способа ограничить количество десятичных знаков. К счастью, для этого можно использовать JavaScript.
Решение с использованием JavaScript
Существует множество способов сделать это с помощью JavaScript, но один из наиболее простых — это использовать обработчик событий input , который будет округлять число до двух десятичных знаков каждый раз, когда пользователь вводит данные.
Вот пример кода, в котором используется этот подход:
function validateInput(input) < let value = parseFloat(input.value); if (value.toFixed(2) != input.value) < input.value = value.toFixed(2); >>
В этом коде используется функция parseFloat для преобразования введенного пользователем значения в число с плавающей точкой, а затем функция toFixed для округления этого числа до двух десятичных знаков. Если округленное значение отличается от исходного, то оно заменяется округленным значением.
Однако, стоит отметить, что такой подход может не всегда быть идеальным, поскольку он меняет значение, введенное пользователем, без его ведома. В некоторых случаях может быть предпочтительнее использовать другие подходы, например, выводить сообщение об ошибке или не позволять вводить больше двух десятичных знаков.