隨筆 - 1  文章 - 0  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          •  

          最新評論

          import java.awt.*;
          import java.awt.event.*;
          import javax.swing.*;
          import java.lang.*;

          public class jisuanqi extends JFrame implements ActionListener{
                  private float Num1,Num2,Num; //分別用來存儲運算數和結果
                  private char sign;           //存儲輸入的運算符
                  private double Num0;
                
                  //定義并初始化控件
                  private JPanel p1=new JPanel();
                  private JPanel p2=new JPanel();
                  private JPanel p3=new JPanel();
                  private JPanel p4=new JPanel();
                  private JPanel p5=new JPanel();
                  private JPanel p6=new JPanel();
                  private JPanel p7=new JPanel();
                  private JPanel p8=new JPanel();
                  private JPanel p9=new JPanel();
                 
              private JTextField text=new JTextField("0",20);//定義文本域初始值為0
                 
                  private JButton clear=new JButton("清除");
                 
                  private JButton b0=new JButton("0");
                  private JButton b1=new JButton("1");
                  private JButton b2=new JButton("2");
                  private JButton b3=new JButton("3");
                  private JButton b4=new JButton("4");
                  private JButton b5=new JButton("5");
                  private JButton b6=new JButton("6");
                  private JButton b7=new JButton("7");
                  private JButton b8=new JButton("8");
                  private JButton b9=new JButton("9");
                  private JButton a=new JButton("A");
                  private JButton b=new JButton("B");
                  private JButton c=new JButton("C");
                  private JButton d=new JButton("D");
                  private JButton e=new JButton("E");
                  private JButton f=new JButton("F");
                  private JButton dian=new JButton(".");
                 
               
                   
                  private JButton cheng=new JButton("*");
                  private JButton chu=new JButton("/");
                  private JButton jia=new JButton("+");
                  private JButton jian=new JButton("-");
                  private JButton deng=new JButton("=");
                   private JButton sqr=new JButton("sqrt");
                  private JButton mee=new JButton("^");
                 
                 
             
             
                   private JRadioButton ox=new JRadioButton("二進制",false);//初始
                   private JRadioButton bx=new JRadioButton("八進制",false);
                   private JRadioButton dx=new JRadioButton("十進制",true);
                   private JRadioButton hex=new JRadioButton("十六進制",false);
                  
                 
                 
               
          public jisuanqi(){ 
                          super("計算器");
                          setResizable(false);//屏蔽最大化
                          this.getContentPane().setLayout(new GridLayout(9,1));
                          this.getContentPane().add(p1);
                          this.getContentPane().add(p6);
                          this.getContentPane().add(p2);
                          this.getContentPane().add(p3);
                          this.getContentPane().add(p4);
                          this.getContentPane().add(p5);
                          this.getContentPane().add(p7);
                          this.getContentPane().add(p8);
                          this.getContentPane().add(p9);   
                           
                          //按鈕布局
                          p1.add(text);

                          p6.setLayout(new BorderLayout());
                          p6.add("Center",clear);
                         
                          p2.setLayout(new GridLayout(1,4));
                          p2.add(ox); p2.add(bx); p2.add(dx); p2.add(hex);
                         
                          p3.setLayout(new GridLayout(1,4));
                          p3.add(b7); p3.add(b8); p3.add(b9); p3.add(a);
                         
                          p4.setLayout(new GridLayout(1,4));
                          p4.add(b4); p4.add(b5); p4.add(b6); p4.add(b);
                         
                          p5.setLayout(new GridLayout(1,4));
                          p5.add(b1); p5.add(b2); p5.add(b3); p5.add(c);
                         
                          p7.setLayout(new GridLayout(1,4));
                          p7.add(dian); p7.add(b0); p7.add(mee); p7.add(d);
                         
                          p8.setLayout(new GridLayout(1,4));
                          p8.add(jia); p8.add(jian); p8.add(sqr); p8.add(e);
                         
                          p9.setLayout(new GridLayout(1,4));
                          p9.add(cheng); p9.add(chu); p9.add(deng);p9.add(f);
                         
                          b0.addActionListener(this);
                          b1.addActionListener(this);
                          b2.addActionListener(this);
                          b3.addActionListener(this);
                          b4.addActionListener(this);
                          b5.addActionListener(this);
                          b6.addActionListener(this);
                          b7.addActionListener(this);
                          b8.addActionListener(this);
                          b9.addActionListener(this);
                          a.addActionListener(this);
                          b.addActionListener(this);
                          c.addActionListener(this);
                          d.addActionListener(this);
                          e.addActionListener(this);
                          f.addActionListener(this);
                         
                          a.setEnabled(false); //初始
                          b.setEnabled(false);
                          c.setEnabled(false);
                          d.setEnabled(false);
                          e.setEnabled(false);
                          f.setEnabled(false);
                         
               
                        
                                          b0.addKeyListener(new KeyBoard());
                                          b1.addKeyListener(new KeyBoard());
                                          b2.addKeyListener(new KeyBoard());
                                          b3.addKeyListener(new KeyBoard());
                                          b4.addKeyListener(new KeyBoard());
                                          b5.addKeyListener(new KeyBoard());
                                          b6.addKeyListener(new KeyBoard());
                                          b7.addKeyListener(new KeyBoard());
                                          b8.addKeyListener(new KeyBoard());
                                          b9.addKeyListener(new KeyBoard());
                                          a.addKeyListener(new KeyBoard());
                                          b.addKeyListener(new KeyBoard());
                                          c.addKeyListener(new KeyBoard());
                                          d.addKeyListener(new KeyBoard());
                                          e.addKeyListener(new KeyBoard());
                                          f.addKeyListener(new KeyBoard());
                                         
                b0.setForeground(Color.blue);
                b1.setForeground( Color.blue);
                b2.setForeground( Color.blue);
                b3.setForeground( Color.blue);
                b4.setForeground( Color.blue);
                b5.setForeground( Color.blue);
                b6.setForeground( Color.blue);
                b7.setForeground( Color.blue);
                b8.setForeground( Color.blue);
                b9.setForeground( Color.blue);
                a.setForeground( Color.blue);
                b.setForeground( Color.blue);
                c.setForeground( Color.blue);
                d.setForeground( Color.blue);
                e.setForeground( Color.blue);
                f.setForeground( Color.blue);
                dian.setForeground( Color.blue);
               
               
                          clear.addActionListener(this);
                          jia.addActionListener(this);
                          jian.addActionListener(this);
                          cheng.addActionListener(this);
                          chu.addActionListener(this);
                          deng.addActionListener(this);
                          dian.addActionListener(this);
                          sqr.addActionListener(this);
                          mee.addActionListener(this);

                                          clear.addKeyListener(new KeyBoard());
                                          jia.addKeyListener(new KeyBoard());
                                          jian.addKeyListener(new KeyBoard());
                                          cheng.addKeyListener(new KeyBoard());
                                          chu.addKeyListener(new KeyBoard());
                                          deng.addKeyListener(new KeyBoard());
                                          dian.addKeyListener(new KeyBoard());
                                          sqr.addKeyListener(new KeyBoard());
                                          mee.addKeyListener(new KeyBoard());
                                        
               cheng.setForeground(Color.red);
               chu.setForeground(Color.red);
               jia.setForeground(Color.red);
               jian.setForeground(Color.red);
               deng.setForeground(Color.black);
               sqr.setForeground(Color.red);
               mee.setForeground(Color.red);
                                         
                          ox.addItemListener(new checkbox(2));
                          bx.addItemListener(new checkbox(8));
                          dx.addItemListener(new checkbox(10));
                          hex.addItemListener(new checkbox(16));
                             
                                  /*private */ButtonGroup tk=new ButtonGroup();
                                  tk.add(ox);
                                  tk.add(bx);
                                  tk.add(dx);
                                  tk.add(hex);
                           
                   ox.setForeground(Color.black);
                   bx.setForeground(Color.black);
                   dx.setForeground(Color.black);
                   hex.setForeground(Color.black);


           text.addKeyListener(new KeyBoard());
                         
                          pack();show();
                         
                          //窗口關閉
                          addWindowListener(new WindowAdapter(){
                                  public void windowClosing(WindowEvent we){
                                          System.exit(0);
                                          }
                                  });
                                  text.setEditable(false);//去掉文本的可編輯性
                                  text.setHorizontalAlignment(text.RIGHT);//文本右對齊
                          }
                  public class checkbox implements ItemListener{
             int k;
               public checkbox(int kt){
            k=kt;
           }

          public void itemStateChanged(ItemEvent ev)
          {
          //規定當進制轉換時以前輸入的運算符失效
          //二進制
          if (k==2)
          {a.setEnabled(false);
           b.setEnabled(false);
           c.setEnabled(false);
           d.setEnabled(false);
           e.setEnabled(false);
           f.setEnabled(false);
           b9.setEnabled(false);
           b8.setEnabled(false);
           b7.setEnabled(false);
           b6.setEnabled(false);
           b5.setEnabled(false);
           b4.setEnabled(false);
           b3.setEnabled(false);
           b2.setEnabled(false);
           b1.setEnabled(true);
           b0.setEnabled(true); 
           dian.setEnabled(false);
           cheng.setEnabled(false);  
           chu.setEnabled(false);
           jia.setEnabled(true);
           jian.setEnabled(true); 
           sqr.setEnabled(false);
           mee.setEnabled(false);
           }
           if (k==8)
          {a.setEnabled(false);
           b.setEnabled(false);
           c.setEnabled(false);
           d.setEnabled(false);
           e.setEnabled(false);
           f.setEnabled(false);
           b9.setEnabled(false);
           b8.setEnabled(false);
           b7.setEnabled(true);
           b6.setEnabled(true);
           b5.setEnabled(true);
           b4.setEnabled(true);
           b3.setEnabled(true);
           b2.setEnabled(true);
           b1.setEnabled(true);
           b0.setEnabled(true); 
           dian.setEnabled(false);
           cheng.setEnabled(false);  
           chu.setEnabled(false);
           jia.setEnabled(true);
           jian.setEnabled(true); 
           sqr.setEnabled(false);
           mee.setEnabled(false);
           

            Num0=Double.parseDouble(text.getText());
                           Num0=Math.sqrt(Num0);
                           text.setText(""+Num0);
           
           }
           if(k==10)
           {a.setEnabled(false);
           b.setEnabled(false);
           c.setEnabled(false);
           d.setEnabled(false);
           e.setEnabled(false);
           f.setEnabled(false);
           b9.setEnabled(true);
           b8.setEnabled(true);
           b7.setEnabled(true);
           b6.setEnabled(true);
           b5.setEnabled(true);
           b4.setEnabled(true);
           b3.setEnabled(true);
           b2.setEnabled(true);
           b1.setEnabled(true);
           b0.setEnabled(true); 
           dian.setEnabled(true);
           cheng.setEnabled(true);  
           chu.setEnabled(true);
           jia.setEnabled(true);
           jian.setEnabled(true); 
           sqr.setEnabled(true);
           mee.setEnabled(true);
           }
           if(k==16)
           {a.setEnabled(true);
           b.setEnabled(true);
           c.setEnabled(true);
           d.setEnabled(true);
           e.setEnabled(true);
           f.setEnabled(true);
           b9.setEnabled(true);
           b8.setEnabled(true);
           b7.setEnabled(true);
           b6.setEnabled(true);
           b5.setEnabled(true);
           b4.setEnabled(true);
           b3.setEnabled(true);
           b2.setEnabled(true);
           b1.setEnabled(true);
           b0.setEnabled(true); 
           dian.setEnabled(false);
           cheng.setEnabled(false);  
           chu.setEnabled(false);
           jia.setEnabled(true);
           jian.setEnabled(true); 
           sqr.setEnabled(false);
           mee.setEnabled(false);
           }
            }}
                 
                  //按鈕事件
                  public void actionPerformed(ActionEvent e){
                          String input=e.getActionCommand();//定義input存儲按鈕點擊產生的值
                          String str="0123456789ABCDEF";
                          String ysf="+-*^/";
                         
                          //數字輸入
                            if(str.indexOf(input)>=0){
                                  if(text.getText().equals("0"))
                                    text.setText(input);//若TextField中初始值為零則TextField中顯示輸入的數字
                                  else
                                    text.setText(text.getText()+input);//如果TextField中的值不是零則疊加
                                  }
                                 

           

                                 
                          //小數點
                          else if(input.equals("."))
                                text.setText(text.getText()+input);
                               
                           //求開根
                           else if(input.equals("sqrt")){
                           Num0=Double.parseDouble(text.getText());
                           Num0=Math.sqrt(Num0);
                           text.setText(""+Num0);
                           }
                            
                                
                          
                          //運算符
                          else if(ysf.indexOf(input)>=0){
                                  Num1=Float.parseFloat(text.getText());//輸入運算符時Num1存儲TextField中的值
                                  text.setText("");
                                  sign=ysf.charAt(ysf.indexOf(input));//sign讀取輸入的運算符
                                  }
                         
                          //等號       
                          else if(input.equals("=")){
                                  Num2=Float.parseFloat(text.getText());//Num2存儲點擊運算符后的數值
                                 
                                  switch(sign){
                                          //加法
                                          case '+':{
                                                  Num=Num1+Num2;
                                                  text.setText(""+Num);
                                                  break;
                                                  }
                                                 
                                          //減法
                                          case '-':{
                                                  Num=Num1-Num2;
                                                  text.setText(""+Num);
                                                  break;
                                                  }
                                         
                                          //乘法
                                          case '*':{
                                                  Num=Num1*Num2;
                                                  text.setText(""+Num);
                                                  break;
                                                  }
                                                 
                                          //除法
                                          case '/':{
                                                  if(Num2==0)
                                                    text.setText("除數不能為零");//除數為零,則提示除數不能為零
                                                  else{
                                                          Num=Num1/Num2;
                                                          text.setText(""+Num);
                                                          break;
                                                          }
                                         
                                                  }
                                            //求冪
                                           case '^':{
                                                int i=0;
                                                float s=1;
                                                    for (i=1;i<=Num2;i++)
                                                        s=s*Num1;
                                                         Num=s;
                                                         text.setText(""+Num);
                                                          break;
                                        
                                                       }
                                          }
                                         
                                    }   
                                     
                             
                                 
                                  //清除
                                  else if(input.equals("清除")){
                                          Num=' ';
                                          Num1=' ';
                                          Num2=' ';
                                          sign=' ';
                                          text.setText("0");
                                          }
                          }
                          
                             public static void main(String args[]){
               
                          jisuanqi jsq=new jisuanqi();
                          }
                  }

          posted @ 2007-12-28 08:22 小妮子 閱讀(511) | 評論 (0)編輯 收藏
          僅列出標題  
          主站蜘蛛池模板: 大足县| 崇左市| 乐东| 西吉县| 宣化县| 丽江市| 凤阳县| 隆回县| 柳林县| 安溪县| 长岛县| 泰安市| 仁化县| 昭平县| 那曲县| 玉门市| 康乐县| 雷波县| 石门县| 桦南县| 德兴市| 松阳县| 阜康市| 元阳县| 鄄城县| 江源县| 洱源县| 威海市| 平乡县| 韶山市| 宁安市| 洛隆县| 伊金霍洛旗| 柳林县| 阿合奇县| 封开县| 彭山县| 城步| 河北省| 庄河市| 同江市|