Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào chúng ta có thể làm cho JTextField chỉ chấp nhận các số trong Java?

Theo mặc định, một JTextField có thể cho phép số , ký tự đặc biệt ký tự . Xác thực thông tin đầu vào của người dùng được nhập vào JTextField có thể khó, đặc biệt nếu chuỗi đầu vào phải được chuyển đổi thành giá trị số chẳng hạn như int.

Trong ví dụ dưới đây, JTextField chỉ cho phép nhập giá trị số .

Ví dụ

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JTextFieldValidation extends JFrame {
   JTextField tf;
   Container container;
   JLabel label;
   public JTextFieldValidation() {
      container = getContentPane();
      setBounds(0, 0, 500, 300);
      tf = new JTextField(25);
      setLayout(new FlowLayout());
      container.add(new JLabel("Enter the number"));
      container.add(tf);
      container.add(label = new JLabel());
      label.setForeground(Color.red);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      tf.addKeyListener(new KeyAdapter() {
         public void keyPressed(KeyEvent ke) {
            String value = tf.getText();
            int l = value.length();
            if (ke.getKeyChar() >= '0' && ke.getKeyChar() <= '9') {
               tf.setEditable(true);
               label.setText("");
            } else {
               tf.setEditable(false);
               label.setText("* Enter only numeric digits(0-9)");
            }
         }
      });
      setVisible(true);
   }
   public static void main(String[] args) {
      new JTextFieldValidation();
   }
}

Đầu ra

Làm thế nào chúng ta có thể làm cho JTextField chỉ chấp nhận các số trong Java?