2013-07-23 26 views
0

这里是我的简单的计算器code.Im尝试添加该代码的东西special.I希望这个程序:它只会用2级的偶数或2个奇数四个算术运算。举例来说,如果用户试图点击偶数,并在同一时间奇数,我的代码将警告像"You can click 2 even numbers or 2 odd numbers"。怎么我可以使用点击值通过切换按钮int和使用if(value%2==0)声明?如何把我的切换按钮值转换成int

package tr.com.bites; 
import java.util.List; 
import java.util.ArrayList; 
import javax.swing.JOptionPane; 
import javax.swing.JToggleButton; 
public class CalculatorView_1 extends javax.swing.JFrame { 
    JToggleButton[] buttons = new JToggleButton[4]; 
    public CalculatorView_1() { 
     initComponents(); 
     buttons[0]=jToggleButton12; 
     buttons[1]=jToggleButton11; 
     buttons[2]=jToggleButton10; 
     buttons[3]=jToggleButton13; 
    } 
    @SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

     jToggleButton1 = new javax.swing.JToggleButton(); 
     jToggleButton2 = new javax.swing.JToggleButton(); 
     jToggleButton3 = new javax.swing.JToggleButton(); 
     jToggleButton4 = new javax.swing.JToggleButton(); 
     jToggleButton5 = new javax.swing.JToggleButton(); 
     jToggleButton6 = new javax.swing.JToggleButton(); 
     jToggleButton7 = new javax.swing.JToggleButton(); 
     jToggleButton8 = new javax.swing.JToggleButton(); 
     jToggleButton9 = new javax.swing.JToggleButton(); 
     jToggleButton10 = new javax.swing.JToggleButton(); 
     jToggleButton11 = new javax.swing.JToggleButton(); 
     jToggleButton12 = new javax.swing.JToggleButton(); 
     jToggleButton13 = new javax.swing.JToggleButton(); 
     jToggleButton14 = new javax.swing.JToggleButton(); 
     jTextField1 = new javax.swing.JTextField(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

     jToggleButton1.setText("1"); 
     jToggleButton1.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jToggleButton1ActionPerformed(evt); 
      } 
     }); 

     jToggleButton2.setText("2"); 
     jToggleButton2.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jToggleButton2ActionPerformed(evt); 
      } 
     }); 

     jToggleButton3.setText("3"); 
     jToggleButton3.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jToggleButton3ActionPerformed(evt); 
      } 
     }); 

     jToggleButton4.setText("5"); 
     jToggleButton4.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jToggleButton4ActionPerformed(evt); 
      } 
     }); 

     jToggleButton5.setText("4"); 
     jToggleButton5.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jToggleButton5ActionPerformed(evt); 
      } 
     }); 

     jToggleButton6.setText("6"); 
     jToggleButton6.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jToggleButton6ActionPerformed(evt); 
      } 
     }); 

     jToggleButton7.setText("8"); 
     jToggleButton7.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jToggleButton7ActionPerformed(evt); 
      } 
     }); 

     jToggleButton8.setText("7"); 
     jToggleButton8.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jToggleButton8ActionPerformed(evt); 
      } 
     }); 

     jToggleButton9.setText("9"); 
     jToggleButton9.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jToggleButton9ActionPerformed(evt); 
      } 
     }); 

     jToggleButton10.setText("*"); 
     jToggleButton10.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jToggleButton10ActionPerformed(evt); 
      } 
     }); 

     jToggleButton11.setText("-"); 
     jToggleButton11.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jToggleButton11ActionPerformed(evt); 
      } 
     }); 

     jToggleButton12.setText("+"); 
     jToggleButton12.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jToggleButton12ActionPerformed(evt); 
      } 
     }); 

     jToggleButton13.setText("/"); 
     jToggleButton13.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jToggleButton13ActionPerformed(evt); 
      } 
     }); 

     jToggleButton14.setText("="); 
     jToggleButton14.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jToggleButton14ActionPerformed(evt); 
      } 
     }); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
     getContentPane().setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(24, 24, 24) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addGroup(layout.createSequentialGroup() 
         .addComponent(jToggleButton8) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(jToggleButton7) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(jToggleButton9)) 
        .addGroup(layout.createSequentialGroup() 
         .addComponent(jToggleButton5) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(jToggleButton4) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(jToggleButton6)) 
        .addGroup(layout.createSequentialGroup() 
         .addComponent(jToggleButton1) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(jToggleButton2) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(jToggleButton3))) 
       .addGap(34, 34, 34) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) 
        .addComponent(jToggleButton12, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addComponent(jToggleButton11, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addComponent(jToggleButton10, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addComponent(jToggleButton13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addComponent(jToggleButton14, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap(78, Short.MAX_VALUE)) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(36, 36, 36) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addGroup(layout.createSequentialGroup() 
         .addComponent(jToggleButton12) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(jToggleButton11) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(jToggleButton10)) 
        .addGroup(layout.createSequentialGroup() 
         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
          .addComponent(jToggleButton1) 
          .addComponent(jToggleButton2) 
          .addComponent(jToggleButton3)) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
          .addComponent(jToggleButton5) 
          .addComponent(jToggleButton4) 
          .addComponent(jToggleButton6)) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
          .addComponent(jToggleButton8) 
          .addComponent(jToggleButton7) 
          .addComponent(jToggleButton9)))) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addComponent(jToggleButton13) 
       .addGap(41, 41, 41) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(jToggleButton14) 
        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addContainerGap(90, Short.MAX_VALUE)) 
     ); 

     pack(); 
    }// </editor-fold>       

    private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {            
     processValue("1"); 
     valueCheck("1",jToggleButton1); 
    }            

    private void jToggleButton2ActionPerformed(java.awt.event.ActionEvent evt) {            
     processValue("2"); 
     valueCheck("2",jToggleButton2); 
    }            

    private void jToggleButton3ActionPerformed(java.awt.event.ActionEvent evt) {            
     processValue("3"); 
     valueCheck("3",jToggleButton3); 
    }            

    private void jToggleButton5ActionPerformed(java.awt.event.ActionEvent evt) {            
     processValue("4"); 
     valueCheck("4",jToggleButton5); 
    }            

    private void jToggleButton4ActionPerformed(java.awt.event.ActionEvent evt) {            
     processValue("5"); 
     valueCheck("5",jToggleButton4); 
    }            

    private void jToggleButton6ActionPerformed(java.awt.event.ActionEvent evt) {            
     processValue("6"); 
     valueCheck("6",jToggleButton6); 
    }            

    private void jToggleButton8ActionPerformed(java.awt.event.ActionEvent evt) {            
     processValue("7"); 
     valueCheck("7",jToggleButton8); 

    }            

    private void jToggleButton7ActionPerformed(java.awt.event.ActionEvent evt) {            
     processValue("8"); 
     valueCheck("8",jToggleButton7); 
    }            

    private void jToggleButton9ActionPerformed(java.awt.event.ActionEvent evt) {            
     processValue("9"); 
     valueCheck("9",jToggleButton9); 
    }            

    private void jToggleButton12ActionPerformed(java.awt.event.ActionEvent evt) {             
     processValue("+"); 
     for(JToggleButton b: buttons) 
      b.setSelected(false); 
     if(values.contains("+")) 
      jToggleButton12.setSelected(true); 
    }            

    private void jToggleButton11ActionPerformed(java.awt.event.ActionEvent evt) {             
     processValue("-"); 
     for(JToggleButton b: buttons) 
      b.setSelected(false); 
     if(values.contains("-")) 
      jToggleButton11.setSelected(true); 
    }            

    private void jToggleButton10ActionPerformed(java.awt.event.ActionEvent evt) {             
     processValue("*"); 
     for(JToggleButton b: buttons) 
      b.setSelected(false); 
     if(values.contains("*")) 
      jToggleButton10.setSelected(true); 
    }            

    private void jToggleButton13ActionPerformed(java.awt.event.ActionEvent evt) {             
     processValue("/"); 
     for(JToggleButton b: buttons) 
      b.setSelected(false); 
     if(values.contains("/")) 
      jToggleButton13.setSelected(true); 
    }            

    private void jToggleButton14ActionPerformed(java.awt.event.ActionEvent evt) {             
     long total=-1; 
     int firstNumber=-1; 
     int secondNumber=-1; 
     String process=null; 
     for (String secilenler : values) { 
      if(secilenler.equals("+")) 
       process="+"; 
      else if(secilenler.equals("-")) 
       process="-"; 
      else if(secilenler.equals("*")) 
       process="*"; 
      else if(secilenler.equals("/")) 
       process="/";  
      else 
      { 
       if(firstNumber==-1) 
        firstNumber= Integer.parseInt(secilenler); 
       else 
        secondNumber= Integer.parseInt(secilenler); 
      } 
     } 
      if(process.equals("+")) 
       total=firstNumber+secondNumber; 
      else if(process.equals("-")) 
       total=firstNumber-secondNumber; 
      else if(process.equals("*")) 
       total=firstNumber*secondNumber; 
      else 
       total=firstNumber/secondNumber; 
      jTextField1.setText(""+total); 
    }            

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String args[]){ 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       new CalculatorView_1().setVisible(true); 
      } 
     }); 
    } 
    // Variables declaration - do not modify      
    private javax.swing.JTextField jTextField1; 
    private javax.swing.JToggleButton jToggleButton1; 
    private javax.swing.JToggleButton jToggleButton10; 
    private javax.swing.JToggleButton jToggleButton11; 
    private javax.swing.JToggleButton jToggleButton12; 
    private javax.swing.JToggleButton jToggleButton13; 
    private javax.swing.JToggleButton jToggleButton14; 
    private javax.swing.JToggleButton jToggleButton2; 
    private javax.swing.JToggleButton jToggleButton3; 
    private javax.swing.JToggleButton jToggleButton4; 
    private javax.swing.JToggleButton jToggleButton5; 
    private javax.swing.JToggleButton jToggleButton6; 
    private javax.swing.JToggleButton jToggleButton7; 
    private javax.swing.JToggleButton jToggleButton8; 
    private javax.swing.JToggleButton jToggleButton9; 
    // End of variables declaration     
    private List<String> values=new ArrayList<String>(); 
    public void processValue(String strValue) 
    { 
     if(values.contains(strValue)) 
      values.remove(strValue); 
     else 
      values.add(strValue); 
    } 

    private void valueCheck(String value,JToggleButton button) { 

     if(values.size()>2) 
     { 
      processValue(value); 
      button.setSelected(false); 
      JOptionPane.showMessageDialog(this, "You cant click 3 buttons at the same time.."); 
     } 
    } 
    private void evenOdd(int valuee,JToggleButton buton) 
    { 

    } 
} 
+0

那么,有什么问题呢?你想获得按钮的值?那是对的吗? –

+0

是的,这是正确的。 – cansukartal

+0

请张贴的完整代码 –

回答

1
  • JToggleButton具有两个状态,测试与被要求复位的JToggleButton.setSelected(false)状态下执行代码后JToggleButton.isSelected

  • ,因为鼠标/关键事件与切换JToggleButton

  • JToggleButtonJOptionPane.showMessageDialog(this, "You cant click 3 buttons at the same time.."); )不是正确计算器JComponent(0-9,+ - =),使用JButton代替,there are various and different ways how to do it an properly,开始ActionCommandput/getClientProperty

  • 为更好地帮助越早张贴SSCCE

+0

因此我不能用JToggleButton编写代码?我必须使用JToggleButton中,但心不是问题尚未解决 – cansukartal

0

一个简单的计算器,我推荐使用Jbutton将相对于JToggleButtons。随着Jbutton将,你可以简单地使用:

StringBuilder intbuilder = new StringBuilder(); 
int firstnumber; 
int secondnumber; 
String operation; 
button5.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent e) 
    { 
     intbuilder.append("5"); 
    } 
}); 
multiplybutton.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent e) 
    { 
     firstnumber = Integer.parseInt(intbuilder.toString()); 
     operation = "*"; 
    } 
}); 

而且一旦等号被按下时,只是对视字符串操作两个数执行该操作。

+0

I'he尝试,但是当我使用Jbutton将代码想不出运行valueCheck一部分,所以我不能改变JToggleButtons到Jbutton将 – cansukartal

+0

随着Jbutton将你不需要的setSelected(假的),也不您遇到了一次选择两个以上按钮的问题。 JButton几乎完全使valueCheck方法过时。 –

+0

首先,我在手机上写了这个。那里肯定会有一些错字。其次,我写它来帮助,而不是用勺子代码。你在那里得到我说的。当然,它不会编译。他们的按钮命名为“multiplybutton”的机会是多少? –