[RESOLVIDO]Como usar teclas de atalho como ctr s em jButtons?

4 respostas
D

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);

   
     
    }
       
}

4 Respostas

davidbuzatto

Esses tipos de atalho (os accelerators), só existem para itens de menu.
Entretanto vc pode registrar um keylistener no painel que contém os botões por exemplo, e então tratar isso.

[]´s

D

davidbuzatto:
Esses tipos de atalho (os accelerators), só existem para itens de menu.
Entretanto vc pode registrar um keylistener no painel que contém os botões por exemplo, e então tratar isso.

[]´s

Sim, mais com que comandos?

ViniGodoy

Dê uma olhada nesse tópico: http://www.guj.com.br/posts/list/140986.java

D

Valeu, agora consegui fazer eventos com o teclado, só tive de alterar porque estava escrevendo - ao invez de acionar o evento do botão -;

Criado 2 de setembro de 2010
Ultima resposta 3 de set. de 2010
Respostas 4
Participantes 3