Java - longitud de enteros en textField

   
Vista:

longitud de enteros en textField

Publicado por cecilia (73 intervenciones) el 26/10/2008 16:20:51
Hola soy cecilia...esto trabajando con TextField y quisiera restringir la cantidad de numeros a ingresar en el, es decir, que el usuario sólo,pueda ingresar numeros de longitud 3, además quisiera saber si este chequeo puedo realizarlo con el evento KeyPressed y si se puede de que manera???????

si em pueden ayudar!!!por favor!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:longitud de enteros en textField

Publicado por Gerardo Aquino (62 intervenciones) el 26/10/2008 21:56:42
lo que puedes hacer es un método que te evalue los datos introducidos, quizas le pongas el KeyPressed, esto hara que cuando presiones cualquier tecla se disparará un evento que a su ves podria llamar a una validacion, la validacion yo la haria de la sig forma


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

private String validaEntrada(TextField cajaTexto){

// ESTABLECIENDO LA VARIABLE A TRABAJAR
String contenido = caja.texto.getText();
// DEFINIENDO UN LIMITE DE LONGITUD
final int LIMITE = 3;

//VALIDANDO LA LONGITUD DE LA CAJA DE TEXTO
if(contenido.length() > LIMITE){
contenido = contenido.substring(0, LIMITE - 1);
}

// VALIDANDO QUE SEA UN NUMERO ENTERO
try{
Integer.parseInt(contenido);
}catch(NumberFormatException){
contenido = "0";
}

return contenido;

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Ahora lo que pondrias en tu evento de la tecla precionada seria lo siguiente

cajaTexto.setText(validaEntrada(cajaTexto));

de esa forma cuando escribas alguna cosa se evaluara automaticamente, y si es mayor a 3 la cadena pues solita se recorta al limite máximo


Suerte, espero esto te sirva!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:longitud de enteros en textField

Publicado por Mario (199 intervenciones) el 27/10/2008 10:24:33
Creo que ya te han respondido bastante bien, pero voy a aportar mi opinión por si te sirve también.

En primer lugar, decirte que como veo que estás trabajando bastante en validaciones de campos de texto, quizás te viniese bien informarte un poco sobre el uso de los jFormattedTextFiedl. Son TextFields a los que le puedes asignar una "máscara" que debe cumplirse. Es decir, para este caso, podrías poner una máscara que definiese que solamente pueden escribirse 3 números, y el JFormattedTextField ignorará las letras pulsadas en cualquier momento y también los números cuando sobrepases las 3 cifras.

Por otro lado, todo eso lo puedes controlar con los eventos KeyPressed, KeyTyped o KeyReleased. El primero se produce mientras una tecla es presionada. El segundo, cuando una tecla es pulsada(presionada y soltada) y el último cuando la tecla es soltada.
Puedes obtener la tecla pulsada mediante los métodos que aporta el parámetro que se le pasa a cualquiera de los 3 método mencionados anteriormente. Este parámetro es del tipo KeyEvent si no recuerdo mal, y puedes obtener, entre otras cosas, el carácter pulsado o el código de dicho carácter. Ésto te permite saber con exactitud qué tecla has pulsado, pudiendo distinguir entre letras y números, incluso saber si has pulsado enter, control, o cualquier otro tipo de "tecla especial".
Una vez que sabes qué tecla has pulsado, ya puedes hacer las comprobaciones necesarias, como obtener la longitud de la cadena escrita. Si dicha cadena sobrepasa los 3 carácteres, puedes borrar el último escrito, la acción será tan rápida que visualmente parecerá que simplemente no se ha permitido escribir.
Si tienes más dudas me lo dices ; )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:longitud de enteros en textField

Publicado por cecilia (73 intervenciones) el 27/10/2008 12:31:49
Gracias a Gerardo su respuesta fue muy útil la utilice y me anduvo exitosamente!!!!A Mario tambien gracias!!!!!por tus respuestas!!!ya he lorado hacer que mi aplicación sea como deseaba!!! En cuanto a los jFormattedTextFiedl he leido que son más completos y buenos de utilizar! pero lo que sucedía que mi aplicación es bastante grande tengo mucha cantidad de jTextFied y ya estaban todos implementados con MVC para que sus entradas actualice otras vistas por lo cual cambiarlos por jFormattedTextFiedl iba demandarme bastante cambios!!! pero he logrado lo que deseaba gracias ssu respuestas!!!!!

Gracias Cecilia!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar