Как можно ограничить ввод символов в JTextField? - Java

Узнай цену своей работы

Формулировка задачи:

Добрый день! Подскажите, как можно ограничить ввод символов в JTextField, чтобы вводились только цифры и ".", а остальные символы даже не выводились бы в TextField.

Решение задачи: «Как можно ограничить ввод символов в JTextField?»

textual
Листинг программы
  1. import java.awt.*;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.awt.event.KeyAdapter;
  5. import java.awt.event.KeyEvent;
  6. import java.util.regex.Matcher;
  7. import java.util.regex.Pattern;
  8. import javax.swing.*;
  9.  
  10. public class Test extends JFrame {
  11.      public Test() {
  12.          
  13.          final JLabel label = new JLabel();
  14.          final   JTextField tf1 = new JTextField ();
  15.          JButton button = new JButton("Очистить");
  16.          
  17.          getContentPane().add (tf1, BorderLayout.NORTH);
  18.          label.setForeground(Color.red);
  19.          label.setFont(new Font("Consolas",Font.PLAIN,16));
  20.          add(label,BorderLayout.SOUTH);
  21.          add(button,BorderLayout.EAST);
  22.          
  23.          tf1.addKeyListener(new KeyAdapter() {
  24.          @Override
  25.             public void keyPressed(KeyEvent e) {
  26.                  Pattern p = Pattern.compile("(([0-9]){0,}([\\.]){0,})+");
  27.                  Matcher m = p.matcher(tf1.getText());
  28.          
  29.                  if(!m.matches()) {
  30.                      tf1.setEnabled(false);
  31.                      label.setText("Нажмите на кнопку \"Очистить\" Вводите только цифры и символ \".\"");
  32.                   }
  33.             }
  34.         });
  35.      
  36.          button.addActionListener(new ActionListener() {
  37.            
  38.             @Override
  39.             public void actionPerformed(ActionEvent e) {
  40.                 tf1.setText("");
  41.                 tf1.setEnabled(true);
  42.             }
  43.             });
  44.  
  45.          
  46.          
  47.          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  48.          setLocationRelativeTo(null);
  49.          setSize(640,340);
  50.    
  51.      }
  52.  
  53.       public static void main(String[] args) {
  54.          Frame f = new Test();
  55.          f.setVisible(true);
  56.      }
  57.  }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы