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

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

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

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

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

textual
Листинг программы
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]){0,}([\\.]){0,})+");
                 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);
     }
 }

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


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

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

5   голосов , оценка 4.2 из 5
Похожие ответы