Hola:
Una opción es el
JFormattedTextField con máscara.
También puedes añadir un Document adecuado al JTextField. Aquí tienes un ejemplo de cómo hacerlo para
limitar el número de caracteres que admite. Puedes modificarlo para que sólo admita números.
También existe la posibilidad de
capturar el teclado, pero a mi me gusta menos. Es más compleja y más difícil de hacer bien si no quieres perder funcionalidad.
Se bueno.