Passoal estou desenvolvendo um projeto para meu tcc onde precisava abrir uma janela a partir de uma(ou mais) tecla(s). Sei que preciso implementar a inteface KeyListener, mas o problema é que quando adiciono os botões no JFrame os métodos sobrescritos não funcionam, alguém tem uma solução para isso.
Segue o cógigo do meu JFrame.
package br.tcc.gui.menus;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.IOException;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import br.tcc.gui.GUIFuncionario;
public class MenuPrincipal extends JFrame implements ActionListener,
KeyListener {
// pega a largura da tela
int x = this.getWidth();
// pega a altura da tela
int y = this.getHeight();
private final JButton btnPratos;
private final JButton btnBebidas;
private final JButton btnPorcoes;
private final JButton btnSobremesas;
public MenuPrincipal() throws IOException {
/* dimensoes e comportamento da janela */
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// retira a barra de maximazar, minimizar e fechar
setUndecorated(true);
// faz com que a janela seja inicializada maximizada
setExtendedState(MAXIMIZED_BOTH);
Container all = getContentPane();
// KeyStroke ks = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, true);
/* inicializando os botoes */
btnPratos = new JButton(new ImageIcon("imagens/menu_pratos.jpg"));
btnBebidas = new JButton(new ImageIcon("imagens/menu_bebidas.jpg"));
btnPorcoes = new JButton(new ImageIcon("imagens/menu_porcoes.jpg"));
btnSobremesas = new JButton(
new ImageIcon("imagens/menu_sobremesas.jpg"));
// definindo dimensões dos botões
btnPratos.setBounds(200, 130, 342, 256);
btnBebidas.setBounds(740, 130, 342, 256);
btnSobremesas.setBounds(200, 430, 342, 256);
btnPorcoes.setBounds(740, 430, 342, 256);
// monitorando as ações dos botões
all.addKeyListener(this);
btnPratos.addActionListener(this);
btnBebidas.addActionListener(this);
btnSobremesas.addActionListener(this);
btnPorcoes.addActionListener(this);
// adicionando elementos a janela
all.add(btnBebidas);
all.add(btnPorcoes);
all.add(btnPratos);
all.add(btnSobremesas);
}
// tratando as ações dos botões
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnPratos) {
System.out.println("Pratos");
}
if (e.getSource() == btnBebidas) {
System.out.println("Bebidas");
}
if (e.getSource() == btnSobremesas) {
System.out.println("Sobremesas");
}
if (e.getSource() == btnPorcoes) {
System.out.println("Porções");
}
}
@Override
public void keyPressed(KeyEvent e) {
JOptionPane.showMessageDialog(null, e.getKeyCode());
if (e.getKeyCode() == 112) {
GUIFuncionario telaFuncionario = new GUIFuncionario();
telaFuncionario.setVisible(true);
}
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
Se alguém puder me ajudar…!
Obrigado.