Hay una caja de texto que se llama JFormattedTextField que admite formateadores, de forma que en la caja de texto sólo se puede meter lo que diga el formateador.
En la api viene ya un formateador para numeros decimales(java.text.DecimalFormat)
Creo que no impide meter un caracter alfabético, pero si protesta cuando intentas validarlo.
Se bueno.