Foros del Web » Programación para mayores de 30 ;) » Java »

Solo letras y en mayuscula????

Estas en el tema de Solo letras y en mayuscula???? en el foro de Java en Foros del Web. Estimados, seguro este tema ya ha sido publicado 1000 veces; bueno, esta sera la 1001. :-D Soy nuevo en el mundo JAVA, y antes de ...
  #1 (permalink)  
Antiguo 29/06/2011, 13:07
 
Fecha de Ingreso: diciembre-2009
Mensajes: 115
Antigüedad: 15 años
Puntos: 0
Solo letras y en mayuscula????

Estimados, seguro este tema ya ha sido publicado 1000 veces; bueno, esta sera la 1001. :-D
Soy nuevo en el mundo JAVA, y antes de preguntar investigo, pero la verdad me pone loco esto.
Tengo el siguiente codigo
private void txtEmpleadoKeyTyped(java.awt.event.KeyEvent evt) {
char ch = evt.getKeyChar();
if (!Character.isDigit(ch)){
String upCh = txtEmpleado.getText().toUpperCase();
txtEmpleado.setText(upCh);
}else{
evt.consume();
}
}

En el cual pretendo que al apretar una tecla, y al no ser un digito me lo convierta a MAYUSCULA. La verdad lo hace!!, pero la ultima letra me queda sin convertir

Osea, si escribo un nombre me queda: JUAN, PEREz
Si alguien puede darme una mano se lo agradeceré mucho
  #2 (permalink)  
Antiguo 29/06/2011, 13:45
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: Solo letras y en mayuscula????

¿Qué evento estás utilizando? Estoy casi seguro que utilizas un evento en el que la letra que escribes todavía no se ha escrito en el textbox y cuando realizas la conversión a mayúsculas, la estás realizando sobre las letras que estaban escritas anteriormente y no sobre la nueva letra.
  #3 (permalink)  
Antiguo 29/06/2011, 13:49
 
Fecha de Ingreso: diciembre-2009
Mensajes: 115
Antigüedad: 15 años
Puntos: 0
Respuesta: Solo letras y en mayuscula????

Cita:
Iniciado por alexg88 Ver Mensaje
¿Qué evento estás utilizando? Estoy casi seguro que utilizas un evento en el que la letra que escribes todavía no se ha escrito en el textbox y cuando realizas la conversión a mayúsculas, la estás realizando sobre las letras que estaban escritas anteriormente y no sobre la nueva letra.
El evento es KeyTyped
Osea:
private void txtEmpleadoKeyTyped (java.awt.event.KeyEvent evt)
{
.
.
}
  #4 (permalink)  
Antiguo 29/06/2011, 13:59
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: Solo letras y en mayuscula????

[EDITADO]

Prueba con esto.

Código Java:
Ver original
  1. private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) {
  2.         JTextField txtEmpleado =  (JTextField)evt.getComponent();
  3.         char ch =evt.getKeyChar();
  4.         if (Character.isLetter(ch)){
  5.             txtEmpleado.setText(txtEmpleado.getText()+Character.toUpperCase(ch));
  6.             evt.consume();
  7.         }else
  8.         if (Character.isDigit(ch)){      
  9.             evt.consume();
  10.         }
  11.     }

Última edición por alexg88; 29/06/2011 a las 14:08
  #5 (permalink)  
Antiguo 29/06/2011, 21:17
Avatar de gringofer  
Fecha de Ingreso: agosto-2010
Ubicación: Córdoba, Argentina
Mensajes: 338
Antigüedad: 14 años, 4 meses
Puntos: 22
Respuesta: Solo letras y en mayuscula????

Hola genhie, no se si te sirva de algo, pero para convertir todo a mayúsculas puedes usar .toUpper
Aca te dejo información sobre lo que te hablo, espero que te sirva, saludos!

http://www.exampledepot.com/egs/java...pperLower.html
__________________
Si quieres cambio verdadero, pues camina distinto...
  #6 (permalink)  
Antiguo 30/06/2011, 05:15
 
Fecha de Ingreso: diciembre-2009
Mensajes: 115
Antigüedad: 15 años
Puntos: 0
Respuesta: Solo letras y en mayuscula????

Cita:
Iniciado por alexg88 Ver Mensaje
[EDITADO]

Prueba con esto.

Código Java:
Ver original
  1. private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) {
  2.         JTextField txtEmpleado =  (JTextField)evt.getComponent();
  3.         char ch =evt.getKeyChar();
  4.         if (Character.isLetter(ch)){
  5.             txtEmpleado.setText(txtEmpleado.getText()+Character.toUpperCase(ch));
  6.             evt.consume();
  7.         }else
  8.         if (Character.isDigit(ch)){      
  9.             evt.consume();
  10.         }
  11.     }

Funciono!! muchas gracias.
Estoy perplejo de la cantidad de codigo que se necesita para esto

Etiquetas: letras, mayuscula
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:55.