Software Guru Conference & Expo 2014

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.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de JRios

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");
}

Imagen de Nopalin

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

Imagen de WinDoctor

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.

Imagen de JRios

.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.
}

Imagen de ezamudio

condición enredada

Por qué tanto enredo con esa condición?  String.valueOf(TEXTFIELD.getText().charAt(0)).equals(" ") puede reducirse simplemente a TEXTFIELD.getText().charAt(0) == '0' aunque hay que agregar la condición de que el texto tenga al menos un caracter, o sea TEXTFIELD.getText().length() > 0 && TEXTFIELD.getText().charAt(0) == '0' o en vez de charAt puedes usar TEXTFIELD.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!

Imagen de puzzlemaniaco

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