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

📄 jisuanqi.java

📁 计算器
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;

public class JiSuanQi extends Frame{
	
	      public double result = 0;
	      public int n = 0;//用于保证输入数中小数点的个数
	     public String fuhao = null;//用于存储上一个运算符
	     public Boolean sorf = true;//用于判断上个按钮是数字还是运算符 数字为false 运算符为true;
	    
	    public Panel p1 = new Panel();
	    public Panel p2 = new Panel();
	     
	    public TextField t = new TextField(30);
	    
	    public Button bu = new Button("ce");//清零
	    public String[] name = {"1","2","3","+","4","5","6","-","7","8","9","*","0",".","=","/"};
	    public Button[] b = new Button[name.length];
	    
        //构造方法
        public JiSuanQi(){
        	super("计算器");
        	setLayout(new BorderLayout());
        	//添加组件
        	
        	add(p1,BorderLayout.NORTH);
        	add(p2,BorderLayout.SOUTH);
            p1.add(t);
            p1.add(bu);
            p2.setLayout(new GridLayout(4,4));
            t.setText("0");
            
            for(int i = 0;i<name.length;i++){
        	     b[i] = new Button(name[i]);
        	     b[i].setSize(5,5);
        	     p2.add(b[i]);	
        	}
            
            //关闭
           addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		    });
		 
		   //监听
		   for(int i = 0;i<b.length;i++){
		        b[i].addActionListener(new ButtonListener());
		   }
		   bu.addActionListener(new ButtonListener());
		
		    pack();
            setVisible(true);    
     }
     
      public class ButtonListener implements ActionListener {
		          public void actionPerformed(ActionEvent e){
			          String s = e.getActionCommand();
			          zhiXing(s);
	              }
		                                   	
          }
          
          //执行方法
          /**将按钮分为数字、小数点、运算符和清零键。
           *当遇到数字时,如文本框内无内容则t.setTest();
           *              如文本框中有内容则t.setTest(t.getTest()+s);
           *当遇到小数点 先判断小数点的个数,若已经出现了小数点,则无操作
           *             若还没有出现小数点,如文本框内无内容t.setTest();
           *                  如文本框中有内容则t.setTest(t.getTest()+s);
           *当遇到运算符时 同上判断各种情况 看是否运算。
           */
          public void zhiXing(String st1){
          	if(st1.charAt(0)>='0'&&st1.charAt(0)<='9'){
          		if(sorf) t.setText(st1);	
          		else t.setText(t.getText()+st1);
          	    sorf = false;
          	} else if(st1.charAt(0)=='.'){
          		if(sorf) t.setText(st1);	
          		else{
          			if(n==0) t.setText(t.getText()+st1);}
          	    sorf = false;
          	    n++;
          	}else if(st1.charAt(0)=='c'){
          		   result = 0;
	               n = 0;
	               fuhao = null;
	               sorf = true;
	               t.setText("0");
          		}	else {
          		
          		if(fuhao == null) {result =Double.parseDouble(t.getText());fuhao = st1;}
          		else if(sorf ==true){}
          		else yunSuan();
          		fuhao = st1;
          		sorf = true;
          		n=0;
          		}
          		
          }
          //运算
          public void yunSuan(){
          	if(fuhao == "+"){
          		t.setText(result + Double.parseDouble(t.getText())+"");}
            if(fuhao == "-"){
          		t.setText(result - Double.parseDouble(t.getText())+"");}
          	if(fuhao == "*"){
          		t.setText(result * Double.parseDouble(t.getText())+"");}
          	if(fuhao == "/"){
          		t.setText(result / Double.parseDouble(t.getText())+"");}  
          	if(fuhao == "="){}      	
          	result = Double.parseDouble(t.getText());
          }
                       
        //主方法
        public static void main(String[] args){
              JiSuanQi j = new JiSuanQi();
        }
}

⌨️ 快捷键说明

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