⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 caculator.java~92~

📁 一个自己写的
💻 JAVA~92~
字号:
package caculator;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.event.*;

public class caculator
{

        public static void main(String[] args)
        {
          SimpleFrame frame = new SimpleFrame();
          //设置用户关闭框架时的响应动作
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          //显示该框架
       frame.show();
        }
  public caculator() {

        }

}
class SimpleFrame extends JFrame
{
        public SimpleFrame()
        {
          //设置框架大小
          setSize(WIDTH, HEIGHT);
          setTitle("BorderLayoutTest");
          //建立容纳按钮的面板
          ButtonPanel bPanel = new ButtonPanel();


          //将按钮面板和文本框面板置于框架中
          Container contentPane = getContentPane();
          contentPane.add(bPanel);


        }
        public static final int WIDTH = 200;
        public static final int HEIGHT = 250;
}
 class ButtonPanel extends JPanel  implements ActionListener
{
              public ButtonPanel()
              {

                     ExpressField=new JTextField("",15);
                     add(ExpressField);
                     InputField=new JTextField("",10);
                     add(InputField);
                     ClearButton=new JButton("CE");
                     add(ClearButton);

                      //创建按钮


                      NumButton=new JButton[10];
                      for(int i=0;i<10;i++)
                      {
                       NumButton[i]=new JButton(String.valueOf(i));
                       add(NumButton[i]);
                       NumButton[i].addActionListener(this);
                      }

                      ActionButton=new JButton[6];
                      ActionButton[0] = new JButton("+");
                      ActionButton[1] = new JButton("-");
                      ActionButton[2] = new JButton("*");
                      ActionButton[3] = new JButton("/");
                      ActionButton[4] = new JButton(".");
                      ActionButton[5] = new JButton("=");

                      for(int j=0;j<6;j++)
                      {

                        add(ActionButton[j]);//将按钮加入panel
                        ActionButton[j].addActionListener(this);   //注册监听器
                      }





              }
/*
              public void paintComponent(Graphics g)
              {
                      super.paintComponent(g);

                      //显示用户的点击操作
                      g.drawString("您点击的是:" , 100, 120);
              }
      */

              public void actionPerformed(ActionEvent event)
              {
                      if(ClearSign){ExpressField.setText("");InputField.setText(""); ClearSign=false;Text+=".";First=0;Second=0;Third=0;OperFirst="*";OperSecond="+";Text="";Express="";}
                      Object source = event.getSource();
                      if (source == ClearButton){Text+=".";First=0;Second=0;Third=0;OperFirst="*";OperSecond="+";Text="";Express="";}
                      if (source == NumButton[0]){Text+="0";Express+="0";}
                      if (source == NumButton[1]){Text+="1";Express+="1";}
                      if (source == NumButton[2]){Text+="2";Express+="2";}
                      if (source == NumButton[3]){Text+="3";Express+="3";}
                      if (source == NumButton[4]){Text+="4";Express+="4";}
                      if (source == NumButton[5]){Text+="5";Express+="5";}
                      if (source == NumButton[6]){Text+="6";Express+="6";}
                      if (source == NumButton[7]){Text+="7";Express+="7";}
                      if (source == NumButton[8]){Text+="8";Express+="8";}
                      if (source == NumButton[9]){Text+="9";Express+="9";}


                      if (source == ActionButton[0]){Third=Float.parseFloat(Text);
                                                     switch(Compare(OperFirst,OperSecond))
                                                     {
                                                       case 0:
                                                       case 1:First=operation(First,OperFirst,Second);Second=Third;OperFirst=OperSecond;break;
                                                       case -1:Second=operation(Second,OperSecond,Third);break;
                                                     }

                                                     OperSecond="+";Text="";Express+="+";Third=0;
                                                   }

                      if (source == ActionButton[1])
                      {Third=Float.parseFloat(Text);
                       switch(Compare(OperFirst,OperSecond))
                                                              {
                                                                case 0:
                                                                case 1:First=operation(First,OperFirst,Second);Second=Third;OperFirst=OperSecond;break;
                                                                case -1:Second=operation(Second,OperSecond,Third);break;
                                                              }

                                                     OperSecond="-";Text="";Express+="-";Third=0;
                                                     }

                      if (source == ActionButton[2])
                      {
                        Third=Float.parseFloat(Text);
                        switch(Compare(OperFirst,OperSecond))
                                                       {
                                                        case 0:
                                                        case 1:First=operation(First,OperFirst,Second);Second=Third;OperFirst=OperSecond;break;
                                                        case -1:Second=operation(Second,OperSecond,Third);break;
                                                        }

                                                     OperSecond="*";Text="";Express+="*";Third=0;
                                                     }
                      if (source == ActionButton[3])
                      {Third=Float.parseFloat(Text);
                        switch(Compare(OperFirst,OperSecond))
                                                            {
                                                              case 0:
                                                              case 1:First=operation(First,OperFirst,Second);Second=Third;OperFirst=OperSecond;break;
                                                              case -1:Second=operation(Second,OperSecond,Third);break;
                                                            }

                                                     OperSecond="/";Text="";Express+="/";Third=0;
                                                     }

                      if (source == ActionButton[4]){Express+=".";Text+=".";}
                      if (source == ActionButton[5])
                      {
                        Third=Float.parseFloat(Text);
                        switch(Compare(OperFirst,OperSecond))
                                    {
                                      case 0:
                                      case 1:First=operation(First,OperFirst,Second);Second=Third;OperFirst=OperSecond;break;
                                      case -1:Second=operation(Second,OperSecond,Third);break;
                                    }

                        First=operation(First,OperFirst,Second);
                        InputField.setText(First+"");
                        ClearSign=true;
                        First=0;Second=0;Third=0;

                      }





                      ExpressField.setText(Express);
                     //InputField.setText(First+OperFirst+Second+OperSecond+Third);
                      repaint();
              }
             public float operation(float a,String op,float b)
              {
                if(op.equals("+"))a+=b;
                else if(op.equals("-"))a-=b;
                      else if(op.equals("*"))a*=b;
                           else a/=b;

                return a;
              }
              public int Compare(String op,String oper)
              {
                int i=0,j=0;
                if(op.equals("+"))i=0;
                else if (op.equals("-"))i=1;
                     else if(op.equals("*"))i=2;
                          else i=3;
                if(oper.equals("+"))j=0;
                else if (oper.equals("-"))j=1;
                      else if(oper.equals("*"))j=2;
                           else j=3;
                return Precede[i][j];
              }


              private JButton NumButton[];
              private JButton ActionButton[];
              private JButton ClearButton;
              public String Text="";
              public String Express="";
              public JTextField ExpressField;
              public JTextField InputField;
              public float First=0,Second=0,Third=0;
              public String OperFirst="+";
              public String OperSecond="+";
              private static final int PLUS = 0;
              private static final int MINUS = 1;
              private static final int MULT = 3;
              private static final int DIV = 4;
              private static int[][] Precede={{0,0,-1,-1},{0,0,-1,-1},{1,1,0,0},{1,1,0,0}};
              public boolean ClearSign=false;




}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -