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

📄 calculator.java

📁 实现了WINDOWS计算器的所有功能,界面和WINDOWS的一莫一样,这是不完善版本,
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		   char a = s.charAt(i);
		   textField1.setText(textField1.getText()+a);
	        }
	      }
	   }
   }  
   //ce=jb[26],c=jb[27];两个清除键的处理
   if(e.getSource()==jb[26])
   {
	   textField1.setText("0.");
	   jl4.setText("");
	   bag=0;
   }
   if(e.getSource()==jb[27])
   {
	   textField1.setText("0.");
	   jl4.setText("");
	   bag=0;
   }
   
   
   
   //sta按键---------------------------
   if(e.getSource()==jb[0])    
   {
	  
	   jb[1].setEnabled(true);
	   jb[2].setEnabled(true);
	   jb[3].setEnabled(true);
	   jb[4].setEnabled(true);
	   dialog.setVisible(true);
	   if(dialog.getMessage()==MyDialog.CLOSE)
	   {
		   jb[1].setEnabled(false);
		   jb[2].setEnabled(false);
		   jb[3].setEnabled(false);
		   jb[4].setEnabled(false);
		  
//		   dialog.getMessage()==MyDialog.CLOSE
	   }
   }
   if(e.getSource()==jb[1])//Ave
   {}
   if(e.getSource()==jb[2])//Sum
   {}
   if(e.getSource()==jb[3])//s
   {}
   if(e.getSource()==jb[4])//Dat
   {}
   if(e.getSource()==jb[5])//F-E
   {
	   int i;
	   for ( i = 0; i < textField1.getText().length(); i++) 
		    if ('E' == textField1.getText().charAt(i)) 
		    { 
		    break; 
		    }  
		    if(textField1.getText().length()==i)
		    {
		 	   DecimalFormat format = new DecimalFormat("0.################################E0");	
			   textField1.setText(format.format(Double.parseDouble(textField1.getText())));
		    }
		    else	
		    	textField1.setText(""+Double.parseDouble(textField1.getText())+"");
   }
   if(e.getSource()==jb[6]&&(("!0123456789").indexOf(textField1.getText().charAt(textField1.getText().length()-1))==-1))//"("
   {  if(bag<99)
   {
	   bag++;  
	   jl4.setText("(="+bag+"");
	   if(textField1.getText().equals("0."))
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"(");
	   
   }
   }
   if(e.getSource()==jb[7])//")"
   {
	   if(bag>1)
	   {
	   bag--;
	   jl4.setText("(="+bag+"");
	   if(textField1.getText().equals("0."))
		   textField1.setText("");
	   textField1.setText(textField1.getText()+")");
	   }
	   else if(bag==1)
	   {
		   bag--;
		   jl4.setText("");
		   if(textField1.getText().equals("0."))
			   textField1.setText("");
		   textField1.setText(textField1.getText()+")");
	   }
	

	   
   }
   //--------------------------------------------------------------对科学计算器左侧的函数功能按钮的录入---------------------------------------------------------
   if(e.getSource()==jb[8])//dms
   {}
   if(e.getSource()==jb[9]&&(("+-*/=^.(").indexOf(textField1.getText().charAt(textField1.getText().length()-1))==-1)&&!textField1.getText().equals("0."))//Exp
   {
	   textField1.setText(textField1.getText()+"^10^");  
   }
   if(e.getSource()==jb[10])//ln  e=2.718...
   {

	   if(textField1.getText().equals("0."))//如果文本框中最初为”0.“这直接清零后再向其输入ln
	   {
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"ln");
	   }
	   else if(!textField1.getText().equals("0.")&&("0123456789).!").indexOf(textField1.getText().charAt(textField1.getText().length()-1))==-1)//如果文本框中的内容不是“0.”且保证ln符合不能直接跟在数字后面,及要让它跟在运算符后面
	   textField1.setText(textField1.getText()+"ln");
   }
   if(e.getSource()==jb[11])//sin
   {
	   if(textField1.getText().equals("0."))//如果文本框中最初为”0.“这直接清零后再向其输入sin
	   {
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"sin");
	   }
	   else if(!textField1.getText().equals("0.")&&("0123456789).!").indexOf(textField1.getText().charAt(textField1.getText().length()-1))==-1)//如果文本框中的内容不是“0.”且保证sin符合不能直接跟在数字后面,及要让它跟在运算符后面
	   textField1.setText(textField1.getText()+"sin");
   }
   if(e.getSource()==jb[12]&&(("+-*/=^.(").indexOf(textField1.getText().charAt(textField1.getText().length()-1))==-1)&&!textField1.getText().equals("0."))//x^y
   {
	   textField1.setText(textField1.getText()+"^");
   }
   if(e.getSource()==jb[13])//log
   {
	   
		   if(textField1.getText().equals("0."))//如果文本框中最初为”0.“这直接清零后再向其输入log
		   {
			   textField1.setText("");
		   textField1.setText(textField1.getText()+"log");
		   }
		   else if(!textField1.getText().equals("0.")&&("0123456789).!").indexOf(textField1.getText().charAt(textField1.getText().length()-1))==-1)//如果文本框中的内容不是“0.”且保证log符合不能直接跟在数字后面,及要让它跟在运算符后面
		   textField1.setText(textField1.getText()+"log");
   }
   if(e.getSource()==jb[14])//cos
   {
	   if(textField1.getText().equals("0."))//如果文本框中最初为”0.“这直接清零后再向其输入cos
	   {
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"cos");
	   }
	   else if(!textField1.getText().equals("0.")&&("0123456789).!").indexOf(textField1.getText().charAt(textField1.getText().length()-1))==-1)//如果文本框中的内容不是“0.”且保证cos符合不能直接跟在数字后面,及要让它跟在运算符后面
	   textField1.setText(textField1.getText()+"cos");
   }
   if(e.getSource()==jb[15]&&(("+-*/=^.(").indexOf(textField1.getText().charAt(textField1.getText().length()-1))==-1)&&!textField1.getText().equals("0."))//x^3
   {
	   textField1.setText(textField1.getText()+"^3");
   }
   if(e.getSource()==jb[16]&&(("+-*/=^.(").indexOf(textField1.getText().charAt(textField1.getText().length()-1))==-1)&&!textField1.getText().equals("0."))//n!
   {
	   textField1.setText(textField1.getText()+"!");
   }
   if(e.getSource()==jb[17])//tan
   {
	   if(textField1.getText().equals("0."))//如果文本框中最初为”0.“这直接清零后再向其输入tan
	   {
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"tan");
	   }
	   else if(!textField1.getText().equals("0.")&&("0123456789).!").indexOf(textField1.getText().charAt(textField1.getText().length()-1))==-1)//如果文本框中的内容不是“0.”且保证log符合不能直接跟在数字后面,及要让它跟在运算符后面
	   textField1.setText(textField1.getText()+"tan");
   }
   if(e.getSource()==jb[18]&&(("+-*/=^.(").indexOf(textField1.getText().charAt(textField1.getText().length()-1))==-1)&&!textField1.getText().equals("0."))//x^2
   {
	   textField1.setText(textField1.getText()+"^2");
   }
   if(e.getSource()==jb[19]&&(("+-*/=^.(").indexOf(textField1.getText().charAt(textField1.getText().length()-1))==-1)&&!textField1.getText().equals("0."))//1/x
   {
	   textField1.setText("("+textField1.getText()+")/");
   }
   if(e.getSource()==jb[20])//MC
   {
	   MS="0.";
	   jl5.setText("");
   }
   if(e.getSource()==jb[21])//MR
   {
	   if(!MS.equals("0."))
	   textField1.setText(MS);
   }
   if(e.getSource()==jb[22])//MS
   {
	 if(!textField1.getText().equals("0."))
	 {
		 jl5.setText("M");
		 MS=textField1.getText();
	 }
   }
   if(e.getSource()==jb[23])//M+
   {
	   if(!MS.equals("0."))
	   {
	   MS=MS+"+"+textField1.getText();
	   textField1.setText(MS);
	   }
   }
   if(e.getSource()==jb[24]&&(("0123456789).!").indexOf(textField1.getText().charAt(textField1.getText().length()-1))==-1)&&!textField1.getText().equals("0."))//pi=3.1415926535897932384626433832795
   {
	   textField1.setText(textField1.getText()+"PI");
   }
 /**************************************************以上****jb[1]-jb[24]***是左边的****以下是右边部分***jb[25]--jb[57]*******************************************************/
   
   //对数字的录入
   if(e.getSource()==jb[28])//"7"
   {
	   if(textField1.getText().equals("0.")&&dot==true)        //每一个按钮写两个判断语句就是为了在输入框初始录入的时候能够录入小数;
	   {
		   textField1.setText(textField1.getText()+"7");
		   dot=false;
	   }
   else if(textField1.getText().equals("0.")&&dot==false)
	   {
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"7");
	   }
   else textField1.setText(textField1.getText()+"7");
   }
   if(e.getSource()==jb[29])//"8"
   {                                                 //||Integer.parseInt(textField1.getText().substring(0,1))==0)
	   if(textField1.getText().equals("0.")&&dot==true)
	   {
		   textField1.setText(textField1.getText()+"8");
		   dot=false;
	   }
   else if(textField1.getText().equals("0.")&&dot==false)
	   {
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"8");
	   }
   else textField1.setText(textField1.getText()+"8");                  
   }
   if(e.getSource()==jb[30])//"9"
   {
	   if(textField1.getText().equals("0.")&&dot==true)
	   {
		   textField1.setText(textField1.getText()+"9");
		   dot=false;
	   }
   else if(textField1.getText().equals("0.")&&dot==false)
	   {
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"9");
	   }
   else textField1.setText(textField1.getText()+"9");
   }
   if(e.getSource()==jb[34])//"4"
   {
	   if(textField1.getText().equals("0.")&&dot==true)
	   {
		   textField1.setText(textField1.getText()+"4");
		   dot=false;
	   }
   else if(textField1.getText().equals("0.")&&dot==false)
	   {
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"4");
	   }
   else textField1.setText(textField1.getText()+"4");
   }
   if(e.getSource()==jb[35])//"5"
   {
	   if(textField1.getText().equals("0.")&&dot==true)
	   {
		   textField1.setText(textField1.getText()+"5");
		   dot=false;
	   }
   else if(textField1.getText().equals("0.")&&dot==false)
	   {
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"5");
	   }
   else textField1.setText(textField1.getText()+"5");
   }
   if(e.getSource()==jb[36])//"6"
   {
	   if(textField1.getText().equals("0.")&&dot==true)
	   {
		   textField1.setText(textField1.getText()+"6");
		   dot=false;
	   }
   else if(textField1.getText().equals("0.")&&dot==false)
	   {
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"6");
	   }
   else textField1.setText(textField1.getText()+"6");
   }
   if(e.getSource()==jb[40])//"1"
   {
	   if(textField1.getText().equals("0.")&&dot==true)
	   {
		   textField1.setText(textField1.getText()+"1");
		   dot=false;
	   }
   else if(textField1.getText().equals("0.")&&dot==false)
	   {
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"1");
	   }
   else textField1.setText(textField1.getText()+"1");
   }
   if(e.getSource()==jb[41])//"2"
   {
	   if(textField1.getText().equals("0.")&&dot==true)
	   {
		   textField1.setText(textField1.getText()+"2");
		   dot=false;
	   }
   else if(textField1.getText().equals("0.")&&dot==false)
	   {
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"2");
	   }
   else textField1.setText(textField1.getText()+"2");
   }
   if(e.getSource()==jb[42])//"3"
   {
	   if(textField1.getText().equals("0.")&&dot==true)
	   {
		   textField1.setText(textField1.getText()+"3");
		   dot=false;
	   }
   else if(textField1.getText().equals("0.")&&dot==false)
	   {
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"3");
	   }
   else textField1.setText(textField1.getText()+"3");
   }
   if(e.getSource()==jb[46])//"0"
   {
	   if(textField1.getText().equals("0.")&&dot==true)
	   {
		   textField1.setText(textField1.getText()+"0");
		   dot=false;
	   }
   else if(textField1.getText().equals("0.")&&dot==false)
	   {
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"0");
	   }
   else textField1.setText(textField1.getText()+"0");
	 
   }
   if(e.getSource()==jb[52])
   {
	   if(textField1.getText().equals("0."))
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"A");
   }
   if(e.getSource()==jb[53])
   {
	   if(textField1.getText().equals("0."))
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"B");
   }
   if(e.getSource()==jb[54])
   {
	   if(textField1.getText().equals("0."))
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"C");
   }
   if(e.getSource()==jb[55])
   {
	   if(textField1.getText().equals("0."))
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"D");
   }
   if(e.getSource()==jb[56])
   {
	   if(textField1.getText().equals("0."))
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"E");
   }
   if(e.getSource()==jb[57])
   {
	   if(textField1.getText().equals("0."))
		   textField1.setText("");
	   textField1.setText(textField1.getText()+"F");
   }
   /*********对小数点的处理*******************/
   if(e.getSource()==jb[48]&&("+-*/=^.()").indexOf(textField1.getText().charAt(textField1.getText().length()-1))==-1&&clickable)  //
   {	  
	   textField1.setText(textField1.getText()+".");
	   if (textField1.getText().equals("0."))
		   dot=true;
	   else
	   dot=false;
	   
	
   }
   if(e.getSource()==jb[47]&&(("(").indexOf(textField1.getText().charAt(textField1.getText().length()-1))!=-1))
   {
	   if(textField1.getText().equals("0."))
		   textField1.setText("-");
	   else
	   textField1.setText(textField1.getText()+"-");

⌨️ 快捷键说明

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