Como posso adicionar teclas de atalho pro usuário não ter de clicar no mouse, simplesmente apertar uma tecla do teclado?
Ficaria bem mais prático na calculadora abaixo.
package calculator_swing;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;
/**
*
* @author 1193899
*/
public class Main {
public static JFrame frame; // frame
public static JTextField visu; // visor
public static JButton bt1,bt2,bt3,bt4,bt5,bt6,bt7,bt8,bt9,bt0; //Botões para a calculadora;
public static JButton btsoma, btdiv, btmul, btsub, btlimp, btvirg,btneg; // botoes de ações
public static JButton igual,posNeg,virgula;
static char op;
static String temp;
static double num1,num2,res,temp2;
public static void main(String[] args) {
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
frame.setTitle("CALCULADORA");
frame.setSize(275,400);
visu=new JTextField();
visu.setBounds(20,20,230,25);
visu.setVisible(true);
frame.add(visu);
btsoma=new JButton();
btsoma.setText("+");
btsoma.setBounds(200,60,50,50);
btsoma.setVisible(true);
btsoma.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
num1=Double.parseDouble(temp);
op='+';
visu.setText("");
}
});
frame.add(btsoma);
btsub=new JButton();
btsub.setText("-");
btsub.setBounds(200,120,50,50);
btsub.setVisible(true);
frame.add(btsub);
btsub.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
num1=Double.parseDouble(temp);
op='-';
visu.setText("");
}
});
btmul=new JButton();
btmul.setText("*");
btmul.setBounds(200,180,50,50);
btmul.setVisible(true);
frame.add(btmul);
btmul.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
num1=Double.parseDouble(temp);
op='*';
visu.setText("");
}
});
btdiv=new JButton();
btdiv.setText("/");
btdiv.setBounds(200,240,50,50);
btdiv.setVisible(true);
frame.add(btdiv);
btdiv.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
num1=Double.parseDouble(temp);
op='/';
visu.setText("");
}
});
btlimp=new JButton();
btlimp.setText("C");
btlimp.setBounds(20,60,170,50);
btlimp.setVisible(true);
frame.add(btlimp);
btlimp.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp="";
num1=0;
num2=0;
res=0;
temp2=0;
visu.setText("");
}
});
bt1=new JButton();
bt1.setText("1");
bt1.setBounds(20,240,50,50);
bt1.setVisible(true);
bt1.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
temp=temp+"1";
visu.setText(temp);
}
});
frame.add(bt1);
bt2=new JButton();
bt2.setText("2");
bt2.setBounds(80,240,50,50);
bt2.setVisible(true);
frame.add(bt2);
bt2.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
temp=temp+"2";
visu.setText(temp);
}
});
bt3=new JButton();
bt3.setText("3");
bt3.setBounds(140,240,50,50);
bt3.setVisible(true);
frame.add(bt3);
bt3.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
temp=temp+"3";
visu.setText(temp);
}
});
bt4=new JButton();
bt4.setText("4");
bt4.setBounds(20,180,50,50);
bt4.setVisible(true);
frame.add(bt4);
bt4.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
temp=temp+"4";
visu.setText(temp);
}
});
bt5=new JButton();
bt5.setText("5");
bt5.setBounds(80,180,50,50);
bt5.setVisible(true);
frame.add(bt5);
bt5.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
temp=temp+"5";
visu.setText(temp);
}
});
bt6=new JButton();
bt6.setText("6");
bt6.setBounds(140,180,50,50);
bt6.setVisible(true);
frame.add(bt6);
bt6.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
temp=temp+"6";
visu.setText(temp);
}
});
bt7=new JButton();
bt7.setText("7");
bt7.setBounds(20,120,50,50);
bt7.setVisible(true);
frame.add(bt7);
bt7.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
temp=temp+"7";
visu.setText(temp);
}
});
bt8=new JButton();
bt8.setText("8");
bt8.setBounds(80,120,50,50);
bt8.setVisible(true);
frame.add(bt8);
bt8.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
temp=temp+"8";
visu.setText(temp);
}
});
bt9=new JButton();
bt9.setText("9");
bt9.setBounds(140,120,50,50);
bt9.setVisible(true);
frame.add(bt9);
bt9.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
temp=temp+"9";
visu.setText(temp);
}
});
bt0=new JButton();
bt0.setText("0");
bt0.setBounds(20,300,50,50);
bt0.setVisible(true);
frame.add(bt0);
bt0.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
temp=temp+"0";
visu.setText(temp);
}
});
virgula=new JButton();
virgula.setText(",");
virgula.setBounds(80,300,50,50);
virgula.setVisible(true);
frame.add(virgula);
virgula.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
temp=temp+".";
visu.setText(temp);
}
});
igual=new JButton();
igual.setText("=");
igual.setBounds(140,300,50,50);
igual.setVisible(true);
frame.add(igual);
igual.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
num2=Double.parseDouble(temp);
switch(op){
case '+':
res=num1+num2;
break;
case '-':
res=num1-num2;
break;
case '/':
res=num1/num2;
break;
case '*':
res=num1*num2;
break;
}
visu.setText(""+res);
}
});
posNeg=new JButton();
posNeg.setText("+ -");
posNeg.setBounds(200,300,50,50);
posNeg.setVisible(true);
frame.add(posNeg);
posNeg.addActionListener((ActionListener) new ActionListener() {
public void actionPerformed(ActionEvent evt) {
temp=visu.getText();
temp2=Double.parseDouble(temp);
temp2=temp2*-1;
visu.setText(""+temp2);
}
});
frame.setVisible(true);
}
}