| 
	
		|  Autor | Tema: Duda Eventos teclas F1, F2, F3. etc  (Leído 7,864 veces) |  
	| 
			| 
					
						| ZedGe 
								
								 Desconectado 
								Mensajes: 154
								
								
								
								
								
								   | 
 
Bueno me estoy iniciando en Swing y quisiera hacer lo siguiente... tengo un botón que al ser  presionado cierra el frame public void actionPerformed(ActionEvent e) {if (e.getSource()==BotonEscape) {
 System.exit(0);
 }
 }
Lo que necesito es un código que al apretar la tecla F1 haga automáticamente ese evento, o si creo un botón de imprimir, que al apretar el F2 imprima automáticamente Es para comodidad crear estos atajos de teclado, es decir, que si presiono el boton o F1 realize la misma accion. Logre hacerlo con otras teclas pero con estas "Especiales" no. Encontré este código import java.awt.*;import java.applet.Applet;
 import java.awt.event.KeyEvent;
 import java.awt.event.KeyListener;
 
 public class asdasdasd extends Applet {
 
 Label lb1;
 TextField t1;
 
 public void init () {
 t1 = new TextField(20);
 add(t1);
 
 lb1 = new Label(" ");
 add(lb1);
 
 t1.addKeyListener(new KeyListener() {
 int perro = 10;
 char caracter;
 String cadena;
 public void keyTyped(KeyEvent eve) {
 caracter = eve.getKeyChar();
 cadena = String.valueOf(caracter);
 lb1.setText(cadena);
 }
 
 public void keyPressed(KeyEvent eve) {
 if (eve.getKeyCode() == KeyEvent.VK_ALT){
 cadena = "alt";}
 
 if (eve.getKeyCode() == KeyEvent.VK_F1)
 cadena = "F1";
 if (eve.getKeyCode() == KeyEvent.VK_F2)
 cadena = "F2";
 lb1.setText(cadena);
 
 
 }
 
 public void keyReleased(KeyEvent eve) {}
 });
 }
 }
El problema es que debe ir si o si el textfield para que pueda leer la tecla.... alguien me podria ayudar?
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| ZedGe 
								
								 Desconectado 
								Mensajes: 154
								
								
								
								
								
								   | 
 
Este es mi código, lo he puesto pero no me funciona :S /*
 package puntodeventa;
 
 
 import java.awt.event.*;
 import javax.swing.*;
 
 
 public class Prueba extends JFrame implements ActionListener {
 
 JButton botonVentaDeContado;
 
 
 public Prueba() {
 
 setLayout(null);
 botonVentaDeContado=new JButton("Consultar Producto");
 botonVentaDeContado.setBounds(300,250,100,30);
 add(botonVentaDeContado);
 botonVentaDeContado.addActionListener(this);
 
 
 addKeyListener(new KeyListener() {
 @Override
 public void keyTyped(KeyEvent arg0) {}
 @Override
 public void keyReleased(KeyEvent arg0) {}
 @Override
 public void keyPressed(KeyEvent event) {
 if(event.getKeyCode() == KeyEvent.VK_F1)
 System.exit(0);
 }
 });
 
 
 }
 
 
 public void actionPerformed(ActionEvent e) {
 if (e.getSource()==botonVentaDeContado) {
 System.exit(0);
 
 }
 }
 
 public static void main(String[] ar) {
 Prueba formulario1=new Prueba();
 formulario1.setBounds(0,0,450,350);
 formulario1.setVisible(true);
 
 }
 }
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| ZedGe 
								
								 Desconectado 
								Mensajes: 154
								
								
								
								
								
								   | 
 
 me faltaba ponerle lo siguiente botonVentaDeContado.addKeyListener(new KeyListener() {@Override
 public void keyTyped(KeyEvent arg0) {}
 @Override
 public void keyReleased(KeyEvent arg0) {}
 @Override
 public void keyPressed(KeyEvent event) {
 if(event.getKeyCode() == KeyEvent.VK_F1)
 System.exit(0);
 }
 });
 
 |  
						| 
								|  |  
								| « Última modificación: 18 Noviembre 2011, 01:52 am por Leyer » |  En línea | 
 
 |  |  |  | 
			| 
					
						| Leyer 
								 
								
								 Desconectado 
								Mensajes: 786
								
								 
								leyer@elhacker.net
								
								
								
								
								
								     | 
 
Haber eso no funcionara si cambias el focus a otro componente usando el KeyEventDispatcher import java.awt.FlowLayout;import java.awt.KeyEventDispatcher;import java.awt.KeyboardFocusManager;import java.awt.event.*;import javax.swing.*;	private static final long serialVersionUID = 1L;    public Prueba() {        botonVentaDeContado=new JButton("Consultar Producto");        botonVentaDeContado.setBounds(300,250,100,30);        add(botonVentaDeContado);        botonVentaDeContado.addActionListener(this);       KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(this);    }        if (e.getSource()== botonVentaDeContado) System .exit(0);    }    public static void main(String[]  ar) {        Prueba formulario1=new Prueba();        formulario1.setBounds(0,0,450,350);        formulario1.setVisible(true);    }@Override	public boolean dispatchKeyEvent(KeyEvent  arg0) {		return false;	}}
 |  
						| 
								|  |  
								| « Última modificación: 18 Noviembre 2011, 01:48 am por Leyer » |  En línea | 
 
 |  |  |  | 
			| 
					
						| ZedGe 
								
								 Desconectado 
								Mensajes: 154
								
								
								
								
								
								   | 
 
Y cual seria la diferencia entre los 2 metodos?? aun que son algo parecidos |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | Duda sobre teclas Programación Visual Basic
 | pungados | 2 | 1,673 |  21 Diciembre 2007, 20:13 pm por pungados
 |  
						|   |   | Campurar eventos de las teclas Java
 | HardieVon | 5 | 3,975 |  12 Junio 2009, 06:14 am por Amerikano|Cls
 |  
						|   |   | Duda con punsado de teclas. Programación Visual Basic
 | Castiblanco | 4 | 3,176 |  16 Junio 2010, 20:49 pm por BlackZeroX
 |  
						|   |   | [Solucionado][Duda][C#]Eventos y delegados .NET (C#, VB.NET, ASP)
 | final_frontier | 5 | 6,130 |  17 Agosto 2010, 14:55 pm por [D4N93R]
 |  
						|   |   | duda con eventos de boton Java
 | m@o_614 | 1 | 2,114 |  8 Febrero 2015, 03:37 am por 3n31ch
 |    |