¿Es posible ir leyendo caracteres mientras se introducen y guardarlos?

ruvyales
19 de Abril del 2006
Llevo ya varios días buscando la forma y no la encuentro de leer caracteres de un JTextField o un JPasswordField mientras se van introduciendo, y al mismo tiempo guardarlos en un array. El tema es que se deben ir guardando en alguna parte para compararlos con una contraseña, pero el evento KeyPressed se define como "void", con lo cual no puedo poner una sentencia return que me solucionaría la vida. ¿Se podría hacer esto en otro método extendiendo la clase KeyListener? La dificultad para mi está en que debería llamarse al método cada vez que se presiona una tecla

chuidiang
19 de Abril del 2006
Hola:

Haz una clase que implemente KeyListener. En su metodo keyPressed recibiras un KeyEvent. Este KeyEvent contiene la tecla que se ha apretado, con lo que puedes hacer con ella lo que necesites.

Otra opción quizás más simple es heredar de Document a medida y meterlo en el JTextField. Al Document se le avisará cada vez que se intente insertar, borrar o cambiar algo. La ventaja es que ya no tratas con eventos de teclado, sino con los caracteres tal cual se quieren insertar.

En http://www.chuidiang.com/java/ejemplos/JTextField/limita_caracteres.html tienes un ejemplo de definir un Document para limitar el número máximo de caracteres que se meten en un JTextField, pero puedes modificarlo para que haga lo que necesitas.

Se bueno.

ruvyales
19 de Abril del 2006
Muchas gracias, voy a intentarlo como dices