Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/10/2011, 15:53
GsusKrist
 
Fecha de Ingreso: octubre-2008
Mensajes: 6
Antigüedad: 15 años, 7 meses
Puntos: 0
Información Validar Caracteres Especiales en Java durante evento keytyped

Hola amigos hice una funcion que evalúa un caracter digitado en un jtextfield en el evento keytyped.
La cuestion es que recorre un array de caracteres buscando coincidencias y si este no coincide con ninguno de los caracteres del array entonces es un caractér especial. este es el codigo de mi funcion en java:
Código:
public static boolean CarEsp(Character c) {
int x=0;
char Alfab[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','ñ','o','p','q','r','s','t','u','v','w','x','y','z',
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','Ñ','O','P','Q','R','S','T','U','V','W','X','Y','Z',
'á','é','í','ó','ú','Á','É','Í','Ó','Ú','ü','Ü','.','1','2','3','4','5','6','7','8','9','0'};
int Longitud = Alfab.length;
for (int i = 0; i<=Longitud; i++) {
if(c!=(Alfab[i])){ /*aqui evaluo si elcaratér tipeado es distinto a los caracteres válidos*/
x= x++;
}
}if(x == Longitud){return true;}
/*si la cantidad de x es igual a la longitud del array, es especial
por que es distinto a todos los caracteres válidos, si concuerda con
almenos uno entonces si es caracter valido
*/
return false;
}
y esta es la forma como la utilizo en el jtextfield:

Código:
private void jTextField2KeyTyped(java.awt.event.KeyEv… evt) {
char kc = (char) evt.getKeyChar();
if(Validaciones.CarEsp(kc)== false){
Toolkit.getDefaultToolkit().beep();
evt.consume();
}
}
ahora bien el problema es ke no se que estoy haciendo mal por ke no reconoce ninguna tecla y todas las consume cuando lo que debería hacer es solo detectar y consumir el caracter especial.
Mil gracias por su atencion y pronta respuesta