Olá gostaria de saber como se cria e configura listener para o teclado.
no exemplo de uma calculadora, utilizando o ActionListener e o metodo actionPerformed(), ele só funciona se o usuario clicar em cima dos JButtons, gostaria que executasse a mesma ação se o usuario apertasse alguma tecla do teclado, como poderia fazer isso?
um exemplo simples:
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.GridLayout;
public class ExemploListener implements ActionListener {
JFrame janela = new JFrame();
JPanel painel = new JPanel(new GridLayout(2, 2, 10, 10));
JButton numero1 = new JButton("1");
JButton numero2 = new JButton("2");
JButton numero3 = new JButton("3");
JButton numero4 = new JButton("4");
ExemploListener() {
janela.setSize(200,200);
janela.setTitle("Exemplo");
janela.setLocation(200,150);
janela.setResizable(false);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
painel.add(numero1);
painel.add(numero2);
painel.add(numero3);
painel.add(numero4);
numero1.addActionListener(this);
numero2.addActionListener(this);
numero3.addActionListener(this);
numero4.addActionListener(this);
janela.add(painel);
janela.setVisible(true);
}
public void actionPerformed(ActionEvent click) {
if (click.getSource() == numero1) {
JOptionPane.showMessageDialog(null, "1");
}
if (click.getSource() == numero2) {
JOptionPane.showMessageDialog(null, "2");
}
if (click.getSource() == numero3) {
JOptionPane.showMessageDialog(null, "3");
}
if (click.getSource() == numero4) {
JOptionPane.showMessageDialog(null, "4");
}
}
public static void main(String[] args) {
new ExemploListener();
}
}
Gostaria de criar listener para quando o usuario apertar a tecla “1” do teclado, exiba o JOptionPane com a mensagem, e assim para cada botao com seu numero, ou seja, executar a função por dois listener podendo ser pelo click (como já está) e também pelo teclado.
Grato
flw
