После того, как я поэкспериментировал с этим, я обнаружил, что использование keyPressed не является правильным методом, так как он ничего не возвращает для кода ключа. Использование keyChar в методе keyTyped является гораздо лучшим подходом. Я разместил код здесь на тот случай, если кто-нибудь найдет его полезным.
Как сказал Джордж З. в своем ответе, вероятно, было бы лучше использовать JSpinner или JFormattedTextField , однако, если вы хотите использовать текстовое поле, код ниже будет работать.
void formatTextField(JTextField field)
{
field.addKeyListener(new KeyAdapter()
{
public void keyTyped(KeyEvent e)
{
if (field.getText().length() >= 1)
{
e.consume();
}
try
{
Integer.parseInt(String.valueOf(e.getKeyChar()));
}
catch(NumberFormatException | NullPointerException ex)
{
e.consume();
}
}
});
}