jueves, noviembre 29, 2007

Como generar un evento ActionPerformed presionando la tecla Enter

Si estamos, por ejemplo, con el foco sobre un botón y presionamos la tecla Enter, el evento ActionPerformed no se activa. Para ellos, debemos hacer click sobre el botón.

Este código permite generar un evento ActionPerformed si presionamos la tecla enter:

Forma de usarlo:
aButton.addActionListener(this); // for normal mouse click
aButton.addKeyListener(new MakeEnterDoAction()); // convert Enter to an ActionEvent

// MakeEnterDoAction.java
// Class to turn Enter key press into an ActionEvent for a component


import java.awt.event.*;
import java.awt.*;

public class MakeEnterDoAction extends KeyAdapter {

public void keyPressed(KeyEvent ke)
{
if (ke.getKeyCode() == KeyEvent.VK_ENTER)
{
Object src = ke.getSource();
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(
new ActionEvent(src,
ActionEvent.ACTION_PERFORMED,
"Enter"));
}
} // end keyPressed()

} // end class

7 comentarios:

k@ro dijo...

muchas gracias :)

Anónimo dijo...

Donde aplico este codigo por favor
que prove en el key presed y no me resulto

Gracias de antemano

David Eduardo Flores Cueto dijo...
Este comentario ha sido eliminado por el autor.
Fls Luz dijo...
Este comentario ha sido eliminado por el autor.
Fls Luz dijo...
Este comentario ha sido eliminado por el autor.
Fls Luz dijo...

Amigo la verdad le busque de arriba a abajo y de abajo a arriba y no le entendí a tu código y menos puede manipularlo, es decir, no supe ni en en donde ni en´que momento se tiene que realizar el código jup....

Pero bueno si es genial.. sin embargo yo tengo una forma de utilizar la tecla ENTER...Veras lo unico que yo hago es al ultimo elemento antes de llegar al jbuton le agrego un ActionPerformed y llamo una clase realizar acion...
EJEMPLO:

final void realizaraccion(){
System.out.println(
jTextField1.getText(););
}
Entonce tengo
jTextField
y un
jButton
Para realizar un evento desde el enter no necesito llegar al Jbutton Simplemente le agrego un ActionPerformed al jTextField
y listo...
El punto que los dos quedarían así...
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
realizaraccion();
}
private void jTextFieldActionPerformed(java.awt.event.ActionEvent evt) {
realizaraccion();
}

Y ESO ES TODO AL ESTAR EN EL CUADRO DE TEXTO Y PRESIONAR ENTER AUTOMÁTICAMENTE SE REALIZA LA ACCIÓN....
ESPERO LE AYUDE EN ALGO

Anónimo dijo...

Si a alguien le sirve aplique esta sugerencias que encontré en una pagina. Suerte

http://divideyconquer.blogspot.mx/2008/09/presionar-un-jbutton-con-la-tecla-enter.html