I'm trying to create a method that only allows me to type a single number into a text field however my current code does not work. It allows me to type letters in even though the KeyPressed method is triggered. The code that only restricts the input to 1 character works however.
void formatTextField(JTextField field)
{
field.addKeyListener(new KeyAdapter()
{
public void keyTyped(KeyEvent e)
{
if (field.getText().length() >= 1)
{
e.consume();
}
}
public void keyPressed(KeyEvent e)
{
try
{
String keyText = KeyEvent.getKeyText(e.getKeyCode());
Integer.parseInt(keyText);
}
catch(NumberFormatException | NullPointerException ex)
{
e.consume();
}
}
});
}