Foros del Web » Programación para mayores de 30 ;) » Java »

Boton con evento

Estas en el tema de Boton con evento en el foro de Java en Foros del Web. Que tal gente, no logro entender y como hacer para que cuando presione la tecla ENTER un boton realice la misma accion que al hacer ...
  #1 (permalink)  
Antiguo 20/11/2007, 21:31
 
Fecha de Ingreso: abril-2007
Mensajes: 77
Antigüedad: 17 años
Puntos: 0
Boton con evento

Que tal gente, no logro entender y como hacer para que cuando presione la tecla ENTER un boton realice la misma accion que al hacer click sobre el.

Saludos
  #2 (permalink)  
Antiguo 22/11/2007, 09:43
 
Fecha de Ingreso: diciembre-2006
Mensajes: 127
Antigüedad: 17 años, 4 meses
Puntos: 1
Sonrisa Re: Boton con evento

Cita:
Iniciado por dieguito01 Ver Mensaje
Que tal gente, no logro entender y como hacer para que cuando presione la tecla ENTER un boton realice la misma accion que al hacer click sobre el.

Saludos
  #3 (permalink)  
Antiguo 22/11/2007, 09:45
 
Fecha de Ingreso: diciembre-2006
Mensajes: 127
Antigüedad: 17 años, 4 meses
Puntos: 1
Sonrisa Re: Boton con evento

Cita:
Iniciado por dieguito01 Ver Mensaje
Que tal gente, no logro entender y como hacer para que cuando presione la tecla ENTER un boton realice la misma accion que al hacer click sobre el.

Saludos
Hola que tal te envio esto espero te sirva:

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ActionMap;
import javax.swing.InputMap;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.KeyStroke;

public class KeyTester {
static class MyActionListener extends AbstractAction {
MyActionListener(String s) {
super(s);
}

public void actionPerformed(ActionEvent e) {
System.out.println(getValue(Action.NAME));
}
}

public static void main(String args[]) {
String actionKey = "theAction";
JFrame f = new JFrame("Key Tester");
JButton jb1 = new JButton("<html><center>B<br>Focused/Typed");
JButton jb2 = new JButton("<html><center>Ctrl-C<br>Window/Pressed");
JButton jb3 = new JButton("<html><center>Shift-D<br>Ancestor/Released");
Container pane = f.getContentPane();
pane.add(jb1, BorderLayout.NORTH);
pane.add(jb2, BorderLayout.CENTER);
pane.add(jb3, BorderLayout.SOUTH);

KeyStroke stroke = KeyStroke.getKeyStroke("typed B");
Action action = new MyActionListener("Action Happened");
// Defaults to JComponent.WHEN_FOCUSED map
InputMap inputMap = jb1.getInputMap();
inputMap.put(stroke, actionKey);
ActionMap actionMap = jb1.getActionMap();
actionMap.put(actionKey, action);

stroke = KeyStroke.getKeyStroke("control C");
action = new MyActionListener("Action Didn't Happen");
inputMap = jb2.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) ;
inputMap.put(stroke, actionKey);
actionMap = jb2.getActionMap();
actionMap.put(actionKey, action);

stroke = KeyStroke.getKeyStroke("shift released D");
action = new MyActionListener("What Happened?");
inputMap = jb3
.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_C OMPONENT);
inputMap.put(stroke, actionKey);
actionMap = jb3.getActionMap();
actionMap.put(actionKey, action);

f.setSize(200, 200);
f.show();
}
}
  #4 (permalink)  
Antiguo 22/11/2007, 12:25
 
Fecha de Ingreso: abril-2007
Mensajes: 77
Antigüedad: 17 años
Puntos: 0
Re: Boton con evento

Muchas gracias por responder. La forma mas facil que encontre fue añadir un evento de keylistenner al jTextField y cuando preciono el ENTER este produce lo mismo que el boton.


Código:
	private void jTextField_EnvioDeTextoKeyPressed(KeyEvent evt) {
		
		// Si la tecla presionada es el ENTER (KeyCode = 10) enviamos el mensaje
		if (evt.getKeyCode()==10)
		{
			enviarMensaje();
		}
	}
Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:22.