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

📄 my_caculator.java

📁 blueJ写的~是个计算器~功能比较简单~
💻 JAVA
字号:

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

public class My_caculator extends Applet implements ActionListener {
	
	Panel pn,pc,pe;                    //定义3个PANEL,分别来装文本框,数字按纽,控制按纽
	JButton digit[]=new JButton[12];           //定义数字键按纽,包括小数点,和等号
	JButton caculate[]=new JButton[4];          //定义运算符
	JButton control[]=new JButton[2];         //定义控制按纽,包括退格和清空
	JTextField DisplayText;
	
	double c1=0.0,c2=0.0;                //运算的两个数
	char flag='n';                  //标志按了哪个运算符,初始为n,表示什么运算符没按
	public void init() {
		
		
	   //------------------PANEL的初始化-------
	   pn=new Panel();
	   pe=new Panel();
	   pc=new Panel();
	   	   
	   setLayout(new BorderLayout(8,10));	
	   add(pn,BorderLayout.NORTH);
	   add(pe,BorderLayout.EAST);
	   add(pc,BorderLayout.CENTER);	
	   
	   //------------------------------------
	   
	   //-----------计算器显示框初始化-------------
	   DisplayText=new JTextField(23);
	   pn.add(DisplayText);
	   DisplayText.setText("0");
	   DisplayText.setHorizontalAlignment(JTextField.RIGHT);
	   DisplayText.setForeground(Color.blue);
	   DisplayText.setEditable(false);
	   //------------------------------------
	   
	   //--------------控制按纽初始化--------------
	   control[0]=new JButton("退格");
	   control[1]=new JButton("清零");
	   pe.setLayout(new GridLayout(2,1,10,10));
	   pe.add(control[0]);
	   pe.add(control[1]);
	   //----------------------------------------
	   
	   //----------------数字按纽以及运算按纽初始化-----
	   caculate[0]=new JButton("+");
	   caculate[1]=new JButton("-");
	   caculate[2]=new JButton("*");
	   caculate[3]=new JButton("/");
	   for(int i=0;i<10;i++)
	      digit[i]=new JButton(String.valueOf(i));
	   digit[10]=new JButton(".");
	   digit[11]=new JButton("=");
	   pc.setLayout(new GridLayout(4,4,8,8));
	   for(int i=7;i<=9;i++)
	      pc.add(digit[i]);
	   pc.add(caculate[0]);
	   for(int i=4;i<=6;i++)
	      pc.add(digit[i]);
	   pc.add(caculate[1]);
	   for(int i=1;i<=3;i++)
	      pc.add(digit[i]);
	   pc.add(caculate[2]);
	   pc.add(digit[0]);   
	   pc.add(digit[10]);
	   pc.add(digit[11]);
	   pc.add(caculate[3]);
	  //-----------------------------------------
	  
	  //----------注册监听及按纽颜色-----------------------------------------------------
	  for(int i=0;i<12;i++){
	     digit[i].addActionListener(this);
	     digit[i].setForeground(Color.blue);
	     if(i<4){caculate[i].addActionListener(this);caculate[i].setForeground(Color.red);}
	     if(i<2){control[i].addActionListener(this);control[i].setForeground(Color.red);}
	  }
	     digit[11].setForeground(Color.red);
	  
	  //-------------------------------------------------------------------------------
	  
	}

	
		
	
	
	
	public void actionPerformed(ActionEvent e){
		if(e.getActionCommand().charAt(0)>='1'&& e.getActionCommand().charAt(0)<='9'){       //按的是数字键
		      if(DisplayText.getText().indexOf('0')==0&&DisplayText.getText().indexOf('.')<0)DisplayText.setText("");
		      DisplayText.setText(DisplayText.getText()+e.getActionCommand());
		     }
		else if(e.getActionCommand().equals("0")){     //按的是0
		     if(DisplayText.getText().indexOf('0')!=0||DisplayText.getText().indexOf('.')>=0)
		        DisplayText.setText(DisplayText.getText()+e.getActionCommand());
		      }
		else if(e.getActionCommand().equals(".")){      //按的是小数点
		     if(DisplayText.getText().indexOf('.')<0)
		        DisplayText.setText(DisplayText.getText()+e.getActionCommand());
		      }
	    else if(e.getActionCommand().equals("+")||e.getActionCommand().equals("-")||e.getActionCommand().equals("*")||e.getActionCommand().equals("/")) {      //按的是运算符
	          c1=Double.parseDouble(DisplayText.getText());
	          DisplayText.setText("");
	          switch(e.getActionCommand().charAt(0)){
	          	case '+':flag='p';break;
	          	case '-':flag='m';break;
	          	case '*':flag='t';break;
	          	case '/':flag='d';
	          }
	         }
	    else if(e.getActionCommand().equals("="))                 //按的是等号
	          switch(flag){
	          	case 'p':c2=Double.parseDouble(DisplayText.getText());c1+=c2;DisplayText.setText(String.valueOf(c1));break;	                                                     
		        case 'm':c2=Double.parseDouble(DisplayText.getText());c1-=c2;DisplayText.setText(String.valueOf(c1));break;
		        case 't':c2=Double.parseDouble(DisplayText.getText());c1*=c2;DisplayText.setText(String.valueOf(c1));break;
		        case 'd':c2=Double.parseDouble(DisplayText.getText());if(c2==0.0)DisplayText.setText("被除数不能为零");else {c1/=c2;DisplayText.setText(String.valueOf(c1));}break;
		        case 'n':c1=0;DisplayText.setText("老大,还没有按运算符呢!");
		      }
	    else if(e.getActionCommand().equals("清零")){             //按的是清零
	         c1=c2=0.0;
	         DisplayText.setText("0");
	         flag='n';
	         }
	    else  {                                            //按的是退格
	         if(DisplayText.getText().equals("0"));
	         else if(DisplayText.getText().length()==1)
	              DisplayText.setText("0");
	         else 
	              DisplayText.setText(DisplayText.getText().substring(0,DisplayText.getText().length()-1));
	          }    
	}
}

⌨️ 快捷键说明

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