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:
y esta es la forma como la utilizo en el jtextfield: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; }
Código:
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.private void jTextField2KeyTyped(java.awt.event.KeyEv… evt) { char kc = (char) evt.getKeyChar(); if(Validaciones.CarEsp(kc)== false){ Toolkit.getDefaultToolkit().beep(); evt.consume(); } }
Mil gracias por su atencion y pronta respuesta