Cita:
Iniciado por guichogdl textfield solo me acepte un solo punto decimal
No entiendo muy bien ¿Tú deseas que el jTextField te acepte el punto y nada más? ¿O estás validando un jTextField y quieres que te acepte un numeral, y como éstos tiene a lo más un punto decimal, entonces deseas que el jTextField te acepte todos los números (léase del 0 al 9) y sólo un punto decimal... ¿es así?
No soy un experto ni mucho menos, pero igual tengo algunas ideas que pueden ayudarte:
Si sólo quieres que te acepte
UN punto decimal y absolutamente nada más, podrías usar el InputVerifier: (esto te permitirá teclear cualquier cosa en el jTextField, pero
cuando quieras abandonar el foco, te regresará al jTextField y borrará el contenido a no ser que lo ingresado sea un sólo punto)
Crea una clase Verificador que hereda de InputVerifier, así:
Código Java:
Ver originalimport javax.swing.InputVerifier;
import javax.swing.JComponent;
import javax.swing.JTextField;
{
if (clave.equals(".")){
return true;
}
else{
return false;
}
}
return true;
}
}
Luego, en la clase en la cual tienes creado tu jTextField, agrega esto:
Código Java:
Ver originaltuJTextField.setInputVerifier(new Verificador());
Ahora, si lo que quieres es que sea un numeral (que como sabemos, contiene sólo un punto decimal), podrías intentar de nuevo con el InputVerifier, algo como:
Código Java:
Ver originalimport javax.swing.InputVerifier;
import javax.swing.JComponent;
import javax.swing.JTextField;
{
try
{
return true;
}
{
return false;
}
}
return true;
}
}
Esto lo que hace es intentar convertir lo que ingresaste el jTextField a un Double, si puede hacerlo el jTexField queda con el valor que se ingresó. Y si no puede convertirlo a Double, borra lo que se ingresó al jTextField.
De igual manera, en la clase en la cual tienes creado tu jTextField, agrega esto:
Código Java:
Ver originaltuJTextField.setInputVerifier(new Verificador());
Esta es sólo una manera de hacerlo y es la que yo usé alguna vez =)