Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/02/2012, 22:35
Avatar de farfamorA
farfamorA
 
Fecha de Ingreso: noviembre-2010
Ubicación: Lima
Mensajes: 136
Antigüedad: 14 años
Puntos: 24
Respuesta: validar numeros

¿Has intentado usar el jFormattedTextfField que está hecho precisamente para esos menesteres (números, fechas, etc)?

Código Java:
Ver original
  1. JFormattedTextField campoNumerico = new JFormattedTextField();
  2.            // Creamos los formateadores: formateador-por-defecto, formateador-vista y formateador-edicion
  3.            NumberFormatter formateadorPorDefecto = new NumberFormatter(new DecimalFormat("#.##"));
  4.            NumberFormatter formateadorVista = new NumberFormatter(new DecimalFormat("$ #,###.00"));
  5.            NumberFormatter formateadorEdicion = new NumberFormatter(new DecimalFormat("#.##"));
  6.            // Establecemos sus clases
  7.            formateadorPorDefecto.setValueClass(Double.class);
  8.            formateadorVista.setValueClass(Double.class);
  9.            formateadorEdicion.setValueClass(Double.class);
  10.            // Creamos y seteamos el  DefaultFormatterFactory
  11.            DefaultFormatterFactory campoNumericoFactory =
  12.                new DefaultFormatterFactory(formateadorPorDefecto,formateadorVista,formateadorEdicion);
  13.            campoNumerico.setFormatterFactory(campoNumericoFactory);

Puedes crear tu propia clase que extienda de JFormattedTextField, configurándola de la manera que desees: el comportamiento que tendrá cuando ingrese un valor indeseado, si deseas coma o punto decimal, el valor máximo y mínimo, uff... Es más práctico, pues te olvidas de los try-catch, de los if y demás cosas que tendrías que usar si utilizas un simple JTextField.

Cualquier duda que tengas, puedas consultar acá.