COMO UTILIZO keyEvent,

kely
27 de Octubre del 2009
yo poseeo un jtextfield y deseo que solo me digiten numeros, en caso tal que dijiten letras no permitir mostrarlas en la caja de texto, solo los numeros.

Esta es la funcion que he realizado, pero NO bloquea que digiten letras, como hago para que las bloquee.??????

private void anoKeyPressed(java.awt.event.KeyEvent evt) { char c= evt.getKeyChar();
if(!(Character.isDigit(c)))
evt.consume();
}

gracias por su ayuda

miguelAngel
27 de Octubre del 2009
Una forma rápida que se me ha ocurrido es la siguiente:

if(!(Character.isDigit(c)))
String s = textField.getText();
try{
textField.setText(s.substring(0, s.length() - 2));
}catch(IndexOutOfBoundsException except){
textField.setText("");
}
}

Sustituyo el texto del textField por el sub-string desde 0 a hasta la posición anterior a la letra que se ha escrito.

La excepción solamente es para el caso en que se escriba un caracter (no númerico) cuando el textField no contiene nada

espero que sirva saludos


xscorpio
27 de Octubre del 2009
tengo una clase que te hace eso, hace un tiempo la hice, no permite que teclees otros caracteres que no sean dígitos, aquí está la dirección para q la cheques, cualquier cosa me avisas:

http://www.geocities.com/xtr3m3_sc0rpi0/java/textfield

sIX
13 de Junio del 2010
Usa un JFormattedText

sIX
13 de Junio del 2010
Usa un JFormattedText