I need to validate a text field in Java so as the user may only fill this field with numbers (no letters, no empty field).
Asked
Active
Viewed 4,711 times
-1
-
4That's nice. Now what's your question? – Joe C Apr 22 '17 at 19:00
1 Answers
0
You can use an InputVerifier for this
public class Main extends JFrame {
private JTextField textField1 = new JTextField();
private JTextField textField2 = new JTextField();
public Main() {
setSize(200,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(textField1, BorderLayout.NORTH);
add(textField2, BorderLayout.SOUTH);
textField1.setInputVerifier(fieldVerifier);
}
InputVerifier fieldVerifier = new InputVerifier() {
@Override
public boolean verify(JComponent input) {
JTextField temp = (JTextField)input;
try {
int number = Integer.parseInt(temp.getText());
return true;
}
catch(NumberFormatException e) {
JOptionPane.showMessageDialog(null, "You MUST input only numbers!");
}
return false;
}
};
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
new Main().setVisible(true);
}
});
}
}

Sachith Wickramaarachchi
- 5,546
- 6
- 39
- 68