Java Swing GUI

How to Make JTextField Accept Only Numbers

In this tutorial, we are going to see how to make JTextField accept only numbers. JTextField is a Swing component, so there must be a listener object for it to be useful. You can add KeyListener to prevent the user from entering non-numeric characters in a JTextField.


 

Example:
JTextField textField = new JTextField(15);
   
textField.addKeyListener(new KeyAdapter() {
    public void keyTyped(KeyEvent e) {
        char c = e.getKeyChar();
        if ( ((c < '0') || (c > '9')) && (c != KeyEvent.VK_BACK_SPACE)) {
            e.consume();  // if it's not a number, ignore the event
        }
     }
});

Here we ignore the captured event if it is a non-numeric character.
 

 

Complete Example : How to Make JTextField Accept Only Numbers
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class OnlyNumber extends JFrame 
{  
   public static void main(String[]args){
      new OnlyNumber().initComponent();
   }
   public void initComponent() {
      setLayout(new FlowLayout());
      JLabel lbl = new JLabel("Enter a number: ");
      JTextField textField = new JTextField(15);
      add(lbl);
      add(textField);
   
      textField.addKeyListener(new KeyAdapter() {
         public void keyTyped(KeyEvent e) {
             char c = e.getKeyChar();
             if ( ((c < '0') || (c > '9')) && (c != KeyEvent.VK_BACK_SPACE)) {
                  e.consume();  // if it's not a number, ignore the event
             }
         }
      });
   
      setSize(310,70);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setVisible(true);
   }
}

Output:


mcqMCQPractice competitive and technical Multiple Choice Questions and Answers (MCQs) with simple and logical explanations to prepare for tests and interviews.Read More

Leave a Reply

Your email address will not be published. Required fields are marked *