elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Duda Eventos teclas F1, F2, F3. etc
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda Eventos teclas F1, F2, F3. etc  (Leído 7,647 veces)
ZedGe

Desconectado Desconectado

Mensajes: 154


Ver Perfil
Duda Eventos teclas F1, F2, F3. etc
« en: 18 Noviembre 2011, 00:47 am »

Bueno me estoy iniciando en Swing y quisiera hacer lo siguiente... tengo un botón que al ser  presionado cierra el frame

Código:
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

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 Desconectado

Mensajes: 154


Ver Perfil
Re: Duda Eventos teclas F1, F2, F3. etc
« Respuesta #1 en: 18 Noviembre 2011, 01:11 am »

Este es mi código, lo he puesto pero no me funciona :S


Código:
/*

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 Desconectado

Mensajes: 154


Ver Perfil
Re: Duda Eventos teclas F1, F2, F3. etc
« Respuesta #2 en: 18 Noviembre 2011, 01:17 am »

 me faltaba ponerle lo siguiente
Código:
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 Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
Re: Duda Eventos teclas F1, F2, F3. etc
« Respuesta #3 en: 18 Noviembre 2011, 01:38 am »

Haber eso no funcionara si cambias el focus a otro componente

usando el KeyEventDispatcher

Código
  1. import java.awt.FlowLayout;
  2. import java.awt.KeyEventDispatcher;
  3. import java.awt.KeyboardFocusManager;
  4. import java.awt.event.*;
  5. import javax.swing.*;
  6. public class Prueba extends JFrame implements ActionListener,KeyEventDispatcher {  
  7. private static final long serialVersionUID = 1L;
  8. JButton botonVentaDeContado;
  9.    public Prueba() {
  10.        setLayout(new FlowLayout());
  11.        botonVentaDeContado=new JButton("Consultar Producto");
  12.        botonVentaDeContado.setBounds(300,250,100,30);
  13.        add(botonVentaDeContado);
  14.        botonVentaDeContado.addActionListener(this);
  15.       KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(this);
  16.    }
  17.    public void actionPerformed(ActionEvent e) {
  18.        if (e.getSource()==botonVentaDeContado) System.exit(0);      
  19.    }
  20.    public static void main(String[] ar) {
  21.        Prueba formulario1=new Prueba();
  22.        formulario1.setBounds(0,0,450,350);
  23.        formulario1.setVisible(true);
  24.    }
  25. @Override
  26. public boolean dispatchKeyEvent(KeyEvent arg0) {
  27. if (arg0.getKeyCode() == KeyEvent.VK_F1) System.exit(0);
  28. return false;
  29. }
  30. }
« Última modificación: 18 Noviembre 2011, 01:48 am por Leyer » En línea

ZedGe

Desconectado Desconectado

Mensajes: 154


Ver Perfil
Re: Duda Eventos teclas F1, F2, F3. etc
« Respuesta #4 en: 18 Noviembre 2011, 21:07 pm »

Y cual seria la diferencia entre los 2 metodos?? aun que son algo parecidos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre teclas
Programación Visual Basic
pungados 2 1,524 Último mensaje 21 Diciembre 2007, 20:13 pm
por pungados
Campurar eventos de las teclas
Java
HardieVon 5 3,648 Último mensaje 12 Junio 2009, 06:14 am
por Amerikano|Cls
Duda con punsado de teclas.
Programación Visual Basic
Castiblanco 4 2,880 Último mensaje 16 Junio 2010, 20:49 pm
por BlackZeroX
[Solucionado][Duda][C#]Eventos y delegados
.NET (C#, VB.NET, ASP)
final_frontier 5 5,643 Último mensaje 17 Agosto 2010, 14:55 pm
por [D4N93R]
duda con eventos de boton
Java
m@o_614 1 1,964 Último mensaje 8 Febrero 2015, 03:37 am
por 3n31ch
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines