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

📄 computerpad.java

📁 用JAVA语言实现的计算器小程序.如果安装了,已经调试通过的源代码.
💻 JAVA
字号:
package computerpad;

/**
 * @(#)ComputerPad.java
 *
 *
 * @author
 * @version 1.00 2008/11/22
 */

import java.awt.*;
import java.awt.event.*;

import java.lang.Double;
import java.lang.String;

import javax.swing.*;


public class ComputerPad extends JFrame implements ActionListener{



	private JTextField tf;//文本框


	private Panel pan;

	private GridLayout gl;

	//数字按钮
	private JButton btn0;
	private JButton btn1;
	private JButton btn2;
	private JButton btn3;
	private JButton btn4;
	private JButton btn5;
	private JButton btn6;
	private JButton btn7;
	private JButton btn8;
	private JButton btn9;

	private JButton btn_cl;//清零按钮
	private JButton btn_sqr;//开平方按钮
	private JButton btn_zf;//正负按钮
	private JButton btn_back;//回退按钮
	private JButton btn_doc;//小数点
	private JButton btn_equ;//等于

	//operator(加、减、乘、除)按钮
	private JButton btn_operator1;
	private JButton btn_operator2;
	private JButton btn_operator3;
	private JButton btn_operator4;

	
	private double num[]={0.0,0.0};//存放数据的数组
	private double result=0;//计算结果

	//当前运算符
	private boolean add=false;
	private boolean sub=false;
	private boolean mul=false;
	private boolean div=false;


	private boolean isFirst=true;//表示是否为数值的第一个数字

	public ComputerPad(){
		setSize(300,260);
		setLocation(400,150);


		this.displayLayout();


		addWindowListener(new WindowAdapter(){
    		public void windowClosing(WindowEvent e){
    			System.exit(0);
    		}
    	});

	}


    public void displayLayout(){
    	//文本显示框
    	tf=new JTextField("0.",15);
		tf.setBackground(Color.WHITE);
		tf.setEditable(false);
		tf.setHorizontalAlignment(JTextField.RIGHT);
		tf.setVisible(true);
		this.add(tf,"North");

		gl=new GridLayout(5,4,5,5);
		pan=new Panel(gl);
		this.add(pan);

		btn_sqr=new JButton("Sqr");
		btn_sqr.addActionListener(this);
		pan.add(btn_sqr);

		btn_zf=new JButton("+/-");
		btn_zf.addActionListener(this);
		pan.add(btn_zf);

		btn_back=new JButton("Back");
		btn_back.addActionListener(this);
		pan.add(btn_back);

    	btn_cl=new JButton("C");
		btn_cl.addActionListener(this);
		pan.add(btn_cl);
		btn7=new JButton("7");
		btn7.addActionListener(this);
		pan.add(btn7);
		btn8=new JButton("8");
		btn8.addActionListener(this);
		pan.add(btn8);
		btn9=new JButton("9");
		btn9.addActionListener(this);
		pan.add(btn9);
		btn_operator1=new JButton("*");
		btn_operator1.addActionListener(this);
		pan.add(btn_operator1);
		btn4=new JButton("4");
		btn4.addActionListener(this);
		pan.add(btn4);
		btn5=new JButton("5");
		btn5.addActionListener(this);
		pan.add(btn5);
		btn6=new JButton("6");
		btn6.addActionListener(this);
		pan.add(btn6);
		btn_operator2=new JButton("/");
		btn_operator2.addActionListener(this);
		pan.add(btn_operator2);
		btn1=new JButton("1");
		btn1.addActionListener(this);
		pan.add(btn1);
		btn2=new JButton("2");
		btn2.addActionListener(this);
		pan.add(btn2);
		btn3=new JButton("3");
		btn3.addActionListener(this);
		pan.add(btn3);
		btn_operator3=new JButton("+");
		btn_operator3.addActionListener(this);
		pan.add(btn_operator3);
		btn0=new JButton("0");
		btn0.addActionListener(this);
		pan.add(btn0);
		btn_doc=new JButton(".");
		btn_doc.addActionListener(this);
		pan.add(btn_doc);
		btn_equ=new JButton("=");
		btn_equ.addActionListener(this);
		pan.add(btn_equ);
		btn_operator4=new JButton("-");
		btn_operator4.addActionListener(this);
		pan.add(btn_operator4);

    }


    public double toDouble(String str)//将字符串转换成double类型
    {
    	double dou=0;
    	
    	try{
    		dou=Double.parseDouble(tf.getText());
    	}
    	catch(Exception ex){
    		//ex.printStackTrace();
    	}
    	return dou;
    }

    public void actionPerformed(ActionEvent e){
    	
    	String s=e.getActionCommand();//获取按钮标签
    	String tStr=tf.getText();
    	double db=this.toDouble(tStr);
    	
    	if(s.equals("C"))//清零
    	{
    		tf.setText("0.");
    		result=0.0;
    		num[0]=num[1]=0.0;
    		isFirst=true;
    		return;
    	}
        if (s.equals("Back"))                   //退格
        {
            String str=tf.getText().substring(0,tf.getText().length()-1);
            tf.setText(str);
            if (str.equals(""))
            {
                tf.setText("0.");
                isFirst = true;
            }
             return;
        }
        if(s.equals("Sqr"))//开方
	    {
        	
	    	if(db>0)
	    	{
	    		result=Math.sqrt(db);
	    	    tf.setText(""+result);
	    	    
	    	}
	    	else if(db==0)
	    	{
	    		tf.setText("0.0");
	    	}
	    	else
	    	{
	    		tf.setText("错误!");
	    		result=0;
	    	}
	    	isFirst=true;
	    }

	    if(s.equals("+/-"))//改变
	    {
	    	if(db==0)
	    		result=0;
	    	else 
	    		result=-db;
			tf.setText(""+result);
		}


        if ((s.compareTo("0")>=0) && (s.compareTo("9")<=0)   //0~9数字按钮
            || s.equals("."))
        {
        	
        	if (isFirst)
            {
                tf.setText("");
                isFirst = false;
            }
            
            if(s.equals("."))
            {
            	if(db>0)
            		tf.setText(tStr+s);
            	else 
            		tf.setText("0.");
            }
            else 
            	tf.setText(tf.getText()+s);
        }
        
        //以下是加、减、乘、除的实现
        
        if(s.equals("+")){

        	if(num[0]==0.0)
        		num[0]=toDouble(tStr);
        	else
        		num[1]=toDouble(tStr);
        	
	        tf.setText("0.");
	       	isFirst=true;  
	       	
	       	

        	result=num[0]+num[1];

        	
    		System.out.println("+"+num[0]+" "+num[1]);
    		tf.setText(""+result);
    		
        	add=true;
        	sub=false;
        	mul=false;
        	div=false;
         }
        if(s.equals("-")){
	    	    
	        	if(num[0]==0.0)
	        		num[0]=toDouble(tStr);
	        	else
	        		num[1]=toDouble(tStr);
		        tf.setText("0.");
		       	isFirst=true;
	        	result = num[0]-num[1];
	        	
	    		System.out.println("+"+num[0]+" "+num[1]);
	    		tf.setText(""+result);
	    		
	        	add=false;
	        	sub=true;
	        	mul=false;
	        	div=false;
	         }
        if(s.equals("*")){
	     	    
	         	if(num[0]==0.0)
	         		num[0]=toDouble(tStr);
	         	else
	         		num[1]=toDouble(tStr);
	 	        tf.setText("0.");
	 	       	isFirst=true;
	         	result=num[0]*num[1];
	         	
	     		System.out.println("+"+num[0]+" "+num[1]);
	     		tf.setText(""+result);
	     		
	         	add=false;
	         	sub=false;
	         	mul=true;
	         	div=false;
	          }
        if(s.equals("/")){
	      	    
	          	if(num[0]==0.0){
	          		num[0]=toDouble(tStr);
	          		num[1]=1;
	          	}
	          	else{
	          		num[1]=toDouble(tStr);
	          		num[0]=0;
	          	}
	  	        tf.setText("0.");
	  	       	isFirst=true;
	  	       	
	          	try{result=num[0]/num[1];}
	          	catch(Exception ex){
	          		
	          		result=0;
	          		num[0]=num[1]=0;
	          	}
	          	
	      		System.out.println("+"+num[0]+" "+num[1]);
	      		tf.setText(""+result);
	      		
	          	add=false;
	          	sub=false;
	          	mul=false;
	          	div=true;
	           }
        
         
           if (s.equals("=")){
        	   		isFirst=true;
        	   		
		         	if(add){
		         		
		         		if(num[0]==0.0)
			         		num[0]=toDouble(tStr);
			         	else
			         		num[1]=toDouble(tStr);
		         		
		        		result=num[0]+num[1];
		        	
		        		System.out.println("="+num[0]+" "+num[1]);
		        		tf.setText(""+result);
		        		num[0]=num[1]=0;
		         	}
		         	if(sub){
		         		
		         		if(num[0]==0.0)
			         		num[0]=toDouble(tStr);
			         	else
			         		num[1]=toDouble(tStr);
		         		
		        		result=num[0]-num[1];
		            	
		        		System.out.println("="+num[0]+" "+num[1]);
		        		tf.setText(""+result);
		        		num[0]=num[1]=0;
		         	}
		         	
		         	if(mul){
		         		
		         		if(num[0]==0.0)
			         		num[0]=toDouble(tStr);
			         	else
			         		num[1]=toDouble(tStr);
		         		
		        		result=num[0]*num[1];
		        		
		            	
		        		System.out.println("="+num[0]+" "+num[1]);
		        		tf.setText(""+result);
		        		num[0]=num[1]=0;
		         	}
		         	
		         	if(div){
		         		if(num[0]==0.0){
			          		num[0]=toDouble(tStr);
			          		num[1]=1;
			          	}
			          	else
			          		num[1]=toDouble(tStr);
			  	        tf.setText("0.");
			  	       	isFirst=true;
			  	       	
			          	try{
			          		result=num[0]/num[1];
			          	}
			          	catch(Exception ex){
			          		
			          		result=0;
			          		num[0]=num[1]=0;
			          	}
			          	
			      		System.out.println("="+num[0]+" "+num[1]);
			      		tf.setText(""+result);
			      		num[0]=num[1]=0;
		
		         	}
		         }
         }
    

    public static void main (String[] args) {

    	ComputerPad cp=new ComputerPad();


    	cp.setTitle("计算器");
    	cp.setVisible(true);
    }
}

⌨️ 快捷键说明

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