Problema con KeyPressed

Alejandro
01 de Marzo del 2005
Saludos compañeros, tengo un JTextField llamado texto, y kiero que cada vez que el usuario introduzca una cadena y pulse enter, esa cadena aparezca en un List, y tng este codigo, pero me da error:

KeyListener kl=new KeyListener()
{
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode()==e.VK_ENTER)
{
lista.add(texto.getText());
texto.setText("");
}
}
} ;

texto.addKeyListener(kl);

Me podeis echar una mano ??? Gracias por adelantado.

nkpevfqy
01 de Marzo del 2005
No te aconsejo el sistema de pulsar Enter sobre un JTextField. Intenta utilizar algun otro evento, como la perdida de foco, darle a un boton, ...

dibu
01 de Marzo del 2005
El evento KeyPressed se invoca cada vez que tu presionas una tecla sobre el jTextField, por eso no te sirve.
te sugiero que realices una función que tome el texto del JTextField y lo agrege a la lista, puede ser algo así:

public void aniadir(){
DefaultListModel model = new DefaultListModel();
model.addElement(jTAlgo.getText());
jLAlgo.setModel(model);
}
claro que si utilizas tal como esta esta funcion cada vez que llames a la funcion se creara un nuevo model y parecerá que solo se inserta una palabra a la vez. Para que se inserten varias debes crear el model como dato miembro de la clase y en el constructor asignarlo a la lista.

Luego, en el evento ActionPerformed del jText llama a esta funcion así:

private void jTAlgoActionPerformed(
java.awt.event.ActionEvent evt) {
aniadir();
}
y listo!.
Espero te sirva de ayuda.

Alejandro
01 de Marzo del 2005
Ok, muchas gracias