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

📄 接近(计算).java

📁 完成计算器的加
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.lang.Math.*;
class Calculator implements ItemListener,ActionListener{
	Frame f;
	MenuBar mb;
	Menu m1,m2,m3;
	TextField tf1,tf2;
	Panel p0,p1,p2,p3,p4;
	Button b[]=new Button[28];
	String s1,s2,s3;
	static int n=0;
	
	public void display(){
		f=new Frame("计算器");
		mb=new MenuBar();           //建立菜单栏mb
		f.setMenuBar(mb);           //添加菜单栏mb
		m1=new Menu("编辑(E)");     //建立下拉菜单m1
		MenuItem mi1 = new MenuItem("复制(C)",new MenuShortcut(KeyEvent.VK_C));//建立菜单项mi1,并建立快捷键
		m1.add(mi1);                //添加菜单项mi1
		MenuItem mi2 = new MenuItem("粘贴(P)",new MenuShortcut(KeyEvent.VK_V));//下边同上
		m1.add(mi2);	
		m1.addActionListener(this);	//添加监听器
		mb.add(m1);
		m2=new Menu("查看(V)");
		CheckboxMenuItem cm1=new CheckboxMenuItem("标准型(T)");//建立复选框
		cm1.addItemListener(this);
	    CheckboxMenuItem cm2=new CheckboxMenuItem("科学型(S)");
		cm2.addItemListener(this);
		m2.add(cm1);
		m2.add(cm2);		
		m2.addSeparator();
		m2.add(new MenuItem("数学分组(I)"));
		m2.addActionListener(this);
		mb.add(m2);	
		m3=new Menu("帮助(H)");
		m3.add(new MenuItem("帮助主题(H)"));
		m3.addSeparator();
		m3.add(new MenuItem("关于计算器(A)"));
		m3.addActionListener(this);	
		mb.setHelpMenu(m3);               //将m3制定为帮助菜单并添加到mb上		
		p0=new Panel();                   //建立面板
		p1=new Panel();
		p2=new Panel();
		p3=new Panel();
	    p4=new Panel();	 
	       
		f.setSize(260,250);                //设置frame的大小
		f.setLocation(200,100);            //设置frame的位置
		f.setBackground(Color.LIGHT_GRAY); //设置背景颜色
		p0.setLayout(new BorderLayout());  //设置p0的布局管理器为BorderLayout,p0用来放文本框和前四个按钮;
		tf1=new TextField(30);             //创建文本区
		tf1.setEditable(false);            //调用函数指定文本区不可编辑
		tf2=new TextField();
		tf2.setBackground(Color.LIGHT_GRAY);
		p0.add(tf1,"North");		       //将tf1放置在p0的北部
		p1.setLayout(new FlowLayout(FlowLayout.RIGHT));  
		p1.add(tf2);
		p1.add(p2);
		b[1]=new Button("Backspace");
		b[2]=new Button("    CE    ");
		b[3]=new Button("    C     ");
		for(int i=1;i<4;i++){           //添加按钮
			p2.add(b[i]);
		}
		p0.add(p1,"Center");
		f.add(p0,"North");     //把p0放在f的北部;
		p3.setLayout(new GridLayout(4,1,6,6));
		b[4]=new Button("MC");
		b[5]=new Button("MR");
		b[6]=new Button("MS");
		b[7]=new Button("M+");
		for(int i=4;i<8;i++){
			p3.add(b[i]);
		}
		f.add(p3,"West");		
		p4.setLayout(new GridLayout(4,5,6,5));
		b[8]=new Button("7");
		b[9]=new Button("8");
		b[10]=new Button("9");
		b[11]=new Button("/");
		b[12]=new Button("sprt");		
		b[13]=new Button("4");
		b[14]=new Button("5");
		b[15]=new Button("6");
		b[16]=new Button("*");
		b[17]=new Button("%");		
		b[18]=new Button("1");
		b[19]=new Button("2");
		b[20]=new Button("3");
		b[21]=new Button("-");
		b[22]=new Button("1/x");		
		b[23]=new Button("0");
		b[24]=new Button("+/-");
		b[25]=new Button(".");
		b[26]=new Button("+");
		b[27]=new Button("=");
		for(int i=8;i<28;i++){
			p4.add(b[i]);
		}
		f.add(p4,"East");		
		for(int i=1;i<28;i++){                //为每个按钮添加监听器
			b[i].addActionListener(this);
		}
		f.pack();
		f.addWindowListener(new WinClose());  //关闭窗口的监听器
		f.setVisible(true);
	}	
	
	public void actionPerformed(ActionEvent e){	
	    if(e.getActionCommand()=="编辑(E)"||e.getActionCommand()=="查看(V)"||e.getActionCommand()=="帮助(H)"){
	    	tf1.setText(e.getActionCommand());
	    }
	    if(e.getActionCommand()=="Backspace"){
	    	tf1.setText((tf1.getText()).substring(0,(tf1.getText()).length()-1)); 
	    }
	    if(e.getSource()==b[2]){                  //获取产生事件的对象,b[2]为CE
	    //(e.getActionCommand()=="CE"){           
     		tf1.setText("");
     	}		
		if(e.getActionCommand()=="0"||e.getActionCommand()=="1"||e.getActionCommand()=="2"||e.getActionCommand()=="3"||e.getActionCommand()=="4"
		   ||e.getActionCommand()=="5"||e.getActionCommand()=="6"||e.getActionCommand()=="7"||e.getActionCommand()=="8"||e.getActionCommand()=="9"){
		    tf1.setText(tf1.getText()+e.getActionCommand());
	    }
	    if(e.getActionCommand()=="+/-"){
	    	//e.getSource()=b[24]){
	    	n++;
	    	if(n%2!=0){
	    	double d1,d;
	        s1=tf1.getText();
	        d1=(new Double(s1)).parseDouble(s1);
	        d=-d1;
	        tf1.setText(String.valueOf(d));	 
	        n++;       
	        }	       	        
	    }	
	    if(e.getSource()==b[22]){             //b[22]是1/x
	        double d1,d;
	        s1=tf1.getText();
	        d1=(new Double(s1)).parseDouble(s1);
	        d=1/d1;
	        tf1.setText(String.valueOf(d));
	    }   	        	 
	    if(e.getSource()==b[12]){                   //获取产生事件的对象,b[12]为sqrt
	    	double d1,d;
	    	s2=tf1.getText();
	    	d1=(new Double(s2)).parseDouble(s2);		            
		    d=Math.sqrt(d1);                      //调用Math类的sqrt函数
		    tf1.setText(String.valueOf(d));
		}	
		if(e.getActionCommand()=="."){        
		   	tf1.setText((tf1.getText()).concat("."));
		   }
		if(e.getActionCommand()=="+"||e.getActionCommand()=="-"||e.getActionCommand()=="*"||e.getActionCommand()=="/"||e.getActionCommand()=="%"){		   		   	
		   s1=tf1.getText();
		   s3=e.getActionCommand();      //把产生动作的按钮名字赋值给s3;
		   tf1.setText("");
		}
		if(e.getSource()==b[3]){      //b[3]为C
		    tf1.setText("");
     		s3="";
     	}	    	
        if(e.getSource()==b[17]){                 //b[17]为%
      // if(e.getActionCommand()=="%"){		     //为什么不行
     	  if(e.getActionCommand()=="="){
		     double d1,d2,d=0.0;
	         s2=tf1.getText();
	         d1=(new Double(s1)).parseDouble(s1);	    		 	    		 
		     d2=(new Double(s2)).parseDouble(s2);
		     d2=d2*0.01;
		     if(s3=="+"){
		     	d=d1+d2;
		     	}
		     if(s3=="-"){
		     	d=d1-d2;
		     	}
		     if(s3=="*"){
		     	d=d1*d2;
		     	}
		     if(s3=="/"){
		     	d=d1/d2;
		     	}	       		       	  
		     tf1.setText(String.valueOf(d));
		  }
		}	
	    if(s3=="+"){
	    	if(e.getActionCommand()=="="){
	    	     double d1,d2,d;
	    		 s2=tf1.getText();
	    		 d1=(new Double(s1)).parseDouble(s1);
		       	 d2=(new Double(s2)).parseDouble(s2);
		       	 d=d1+d2;
		         tf1.setText(String.valueOf(d));
		    }
		}		      
		if(s3=="-"){
		    if(e.getActionCommand()=="="){		 
		    	 double d1,d2,d;
	    		 s2=tf1.getText();
	    		 d1=(new Double(s1)).parseDouble(s1);
		         d2=(new Double(s2)).parseDouble(s2);
		       	 d=d1-d2;
		       	 tf1.setText(String.valueOf(d));
		    }
		}
		if(s3=="*"){
		    if(e.getActionCommand()=="="){		       	 	
		       	 double d1,d2,d;
	    		 s2=tf1.getText();
	    		 d1=(new Double(s1)).parseDouble(s1);
		         d2=(new Double(s2)).parseDouble(s2);
		       	 d=d1*d2;
		       	 tf1.setText(String.valueOf(d));
		    }
	    }
		if(s3=="/"){		    
		   if(e.getActionCommand()=="="){			     	       	  	
		       	 double d1,d2,d;
	    		 s2=tf1.getText();
	    		 d1=(new Double(s1)).parseDouble(s1);
		         d2=(new Double(s2)).parseDouble(s2);
		       	 d=d1/ d2;
		       	 tf1.setText(String.valueOf(d));		       	   
		       	 if(d2==0){
		       	  	  tf1.setText("除数为零 !");
		       	 }
		    }
		}	
	}
	public void itemStateChanged(ItemEvent e){  
	    tf1.setText("ItemStateChanged");
    }
      		       	  	
	public static void main(String args[]){
		Calculator a=new Calculator();
		a.display();
	}
}	
class WinClose extends WindowAdapter{                //定义一个类继承WindowAdapter关闭窗口
	public void windowClosing(WindowEvent e){
	System.exit(0);
	}
}
	 

 
		

⌨️ 快捷键说明

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