Evitar que el primer caracter escrito en un textfield se el "espacio"
Buenos días señores, aqui nuevamente con una pequeña consulta para muchos pero para mi que empiezo en java es algo grande, como puedo hacer para que, al momento de ingresar texto en un textfield, si el primer caracter que ingreso es un espacio en blanco no me permita ingresarlo, y si desean agregarle un plus mostrar un pequeño mensajito, se los agradeceria bastante, muchas gracias de antemano.
No se si es lo mejor....
Buenas tardes compañero
No se si sea la mejor opcion pero yo lo hice de esta manera y me funciono perfectamente.
Tomamos el JTextField y extraemos la cadena y tomamos el primer digito y lo comparamos.
Lo tomamos con el comando charAt y lo comparamos con equals
Quedaria de la siguiente forma dentro de tu evento.
if(String.valueOf(TEXTFIELD.getText().charAt(0)).equals(" ")){
JOptionPane.showMessageDialog(null,"Su primer digito es un espacio en blanco");
}
es algo trivial
por que no haces un trim al text que te regresa el jtextfield? asi te aseguras que no vayan espacios ni al final ni al comienzo.
sobres
Ya lo hice
Fijate que, ya probe esto mucho antes de comentar y al momento de ponerlo en el condicional me tira false entra al If y todo pero sigue con la secuencia normal del procedimiento, gracias siempre por tu apoyo
Gracias por tu ayuda
Estuve probando lo que me diste si funciona, pero siempre me sigue ejecutando la secuencia del programa jejejeje, de todas formas muchas gracias por tu ayuda tel o agradezco mucho
Pones else
Si lo haces como te dice JRios, debes poner también un else.
if(valida que NO sea espacio en blanco){
//Aqui código que desees ejecute siempre que el primer caracter sea diferente de espacio en blanco
}
else
//Aqui el JOptionPane para mandar el mensaje
De esta forma no te va a ejecutar la secuencia.
.trim() al JTextField
Me parece bien la expresion .trim() para el momento de guardarlos a la BD, ya que evita que guardes el espacio en blanco, sin embargo si quieres avisarle a la persona que no este dejando espacio en blanco al principio puedes utilizar la expresion que te señale y para que no te siga ejecutando la secuencia del programa, tienes que colocar el resto del codigo dentro de un ELSE para que se cumpla si la digitacion es correcta, es decir,
if(String.valueOf(TEXTFIELD.getText().charAt(0)).equals(" ")){
JOptionPane.showMessageDialog(null,"Su primer digito es un espacio en blanco");
}else{
// Colocas aqui tu codigo para cuando no halla espacio al principio.
}
condición enredada
Por qué tanto enredo con esa condición?
String.valueOf(TEXTFIELD.getText().charAt(0)).equals(" ")
puede reducirse simplemente aTEXTFIELD.getText().charAt(0) == '0'
aunque hay que agregar la condición de que el texto tenga al menos un caracter, o seaTEXTFIELD.getText().length() > 0 && TEXTFIELD.getText().charAt(0) == '0'
o en vez de charAt puedes usarTEXTFIELD.getText().startsWith(" ")
pero si ya sabes que es sólo un caracter, lo mejor es comparar el primer caracter.Gracias por tu ayuda
Gracias JRios te lo agradezco mucho, si me funciono jejeje
Gracias por tu ayuda
Gracias WinDoctor te lo agradezco, tu comentario y el de JRios me ayudo con este problemin, excelente aporte.
Simplemente....
Simplemente Genial!
y por que no un keylistener
public void keyTyped(KeyEvent e)
{
c = e.getKeyChar();
static void validaNumeros(char c,KeyEvent e)
{
if Character.isWhitespace(c) )
{
}
else
{
JOptionPane.showMessageDialog(null,"No espacios","Error",JOptionPane.WARNING_MESSAGE);
e.consume();
}
}
claro esto es muy generico ademas de que no permitiria ningun espacio en blanco pero pues no se podrias adapatarlo