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

📄 calculator.java

📁 java 写的计算器程序
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
				if(!viewMenu_numberGrouping.isSelected()){
					decimalismFormat.setGroupingUsed(false);						
				}
				else{
					decimalismFormat.setGroupingUsed(true);
				}	
				displayField.setText(decimalismFormat.format(new BigDecimal(memoryPlusResult)));
			}  			
		});
		
		//创建MS按钮
		btnMS=new JButton("MS");
		btnMS.setForeground(Color.RED);
		btnMS.setMargin(new Insets(0,1,2,1));
		container.add(btnMS);
		btnMS.addActionListener(new ActionListener(){			
			public void actionPerformed(ActionEvent arg0) {
				if(isError==true){
					return;
				}
				
				try {
					String displayStr=displayField.getText();
					
					DecimalFormat df=new DecimalFormat();
					df.setParseBigDecimal(true);
					df.setParseIntegerOnly(false);
					Object obj=df.parse(displayStr);
					
					double num=java.lang.Double.parseDouble(displayStr.replace(",",""));
					
					if(num!=0){					
						memoryPlusResult=obj.toString();					
						memoryLabel.setText("M");						
						isOperandBegin=true;
						isDot=false;
					}
					else{
						displayField.setText("0.");
						isDot=false;
						isOperandBegin=true;
					}
					isOperandBegin=true;
					isDot=false;
				} catch (ParseException e) {
					e.printStackTrace();
				}
			}  			
		});
		
		
		//创建M+按钮
		btnMPlus=new JButton("M+");
		btnMPlus.setForeground(Color.RED);
		btnMPlus.setMargin(new Insets(0,1,2,1));
		container.add(btnMPlus);  		
		btnMPlus.addActionListener(new ActionListener(){			
			public void actionPerformed(ActionEvent arg0) {
				if(isError==true){
					return;
				}				
				
				try {
					String displayStr=displayField.getText();
					
					DecimalFormat df=new DecimalFormat();
					df.setParseBigDecimal(true);
					df.setParseIntegerOnly(false);
					Object obj=df.parse(displayStr);
					
					double num=java.lang.Double.parseDouble(displayStr.replace(",",""));
					
					if(num!=0){					
						memoryPlusResult=Arith.add(memoryPlusResult,obj.toString()).toString();					
						memoryLabel.setText("M");						
						isOperandBegin=true;
						isDot=false;
					}
					else{
						displayField.setText("0.");
						isDot=false;
						isOperandBegin=true;
					}
					isOperandBegin=true;
					isDot=false;
				} catch (ParseException e) {
					e.printStackTrace();
				}				
			}  			
		});
		
		
		
		
		
		//创建0按钮
		btn0=new JButton("0");
		btn0.setForeground(Color.BLUE);
		btn0.setMargin(new Insets(0,1,2,1));
		container.add(btn0);
		btn0.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				if(isError==true){
					return;
				}				
				if(isExp==true&&rbDecimalism.isSelected()){
					//按科学记数法输入
					int explength=displayField.getText().length()-displayField.getText().indexOf("+");
					if(explength>4){
						return;
					}			
					if(displayField.getText().indexOf("E+0")!=-1){
						displayField.setText(displayField.getText().substring(0,displayField.getText().length()-1)+"0");						
						return;
					}
					else{
						displayField.setText(displayField.getText()+"0");
						return;
					}
				}
				if(rbHexadecimal.isSelected()||rbOctal.isSelected()||rbBinary.isSelected()){
					if(rbHexadecimal.isSelected()&&displayField.getText().length()>=16){
						return;
					}
					if(rbOctal.isSelected()&&displayField.getText().length()>=22){
						return;
					}
					if(rbBinary.isSelected()){
						if(rbDQ.isSelected()&&displayField.getText().length()>=64){
							return;
						}else if(rbDD.isSelected()&&displayField.getText().length()>=32){
							return;
						}else if(rbDW.isSelected()&&displayField.getText().length()>=16){
							return;
						}else if(rbDB.isSelected()&&displayField.getText().length()>=8){
							return;
						}
					}
					
					if(isOperandBegin==true||displayField.getText().equals("0")){
						displayField.setText("0");
						isOperandBegin=false;
					}
					else{
						displayField.setText(displayField.getText()+"0");
					}
					return;
				}
				
				try {
					
					String displayStr = displayField.getText();
					
					if(isOperandBegin==true){		        		
						displayField.setText("0.");
						isOperandBegin=false;
						return;
					}
					
					if(displayStr.replace(",","").length()>=32){
						return;
					}
					
					if(java.lang.Double.parseDouble(displayStr.replace(",",""))==0&&isDot==true){
						displayField.setText(displayStr+"0");
						return;
					}		
					
					//基于格式的解析
					DecimalFormat df=new DecimalFormat();					
					df.setParseBigDecimal(true);
					
					Object obj= null;	
					obj = df.parse(displayStr);
					if(obj.toString().length()>=32){
						return;
					}
					
					BigDecimal bdobj=new BigDecimal(obj.toString());
					
					StringBuffer sb=null;
					
					if (viewMenu_numberGrouping.isSelected() == true) {
						decimalismFormat.setGroupingUsed(true);
					}
					else {
						decimalismFormat.setGroupingUsed(false);
					}
					
					if(isDot==true&&bdobj.toString().indexOf(".")==-1){		        	   
						sb= new StringBuffer(bdobj.toString()+".");
						sb.append("0"); 
						BigDecimal bd = new BigDecimal(sb.toString());
						displayField.setText(bd.toString());
					}
					else if(isDot==true){		            	
						displayField.setText(displayStr+"0");
					}
					else{
						sb= new StringBuffer(bdobj.toString());
						sb.append("0");
						BigDecimal bd = new BigDecimal(sb.toString());		            	
						displayField.setText(decimalismFormat.format(bd));
					}
				}
				catch (ParseException pe0) 
				{		        	
				}	
			}  			
		});
		
		//创建1按钮
		btn1=new JButton("1");
		btn1.setForeground(Color.BLUE);
		btn1.setMargin(new Insets(0,1,2,1));
		container.add(btn1);
		btn1.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {				
				inputNumber(e);				
			}  			
		});
		
		
		//创建2按钮
		btn2=new JButton("2");
		btn2.setForeground(Color.BLUE);
		btn2.setMargin(new Insets(0,1,2,1));
		container.add(btn2);
		btn2.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				inputNumber(e);				
			}  			
		}); 		
		
		
		//创建3按钮
		btn3=new JButton("3");
		btn3.setForeground(Color.BLUE);
		btn3.setMargin(new Insets(0,1,2,1));
		container.add(btn3);
		btn3.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {				
				inputNumber(e);			
			}  			
		});
		
		//创建4按钮
		btn4=new JButton("4");
		btn4.setForeground(Color.BLUE);
		btn4.setMargin(new Insets(0,1,2,1));
		container.add(btn4);
		btn4.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				inputNumber(e);					
			}  			
		});
		
		//创建5按钮
		btn5=new JButton("5");
		btn5.setForeground(Color.BLUE);
		btn5.setMargin(new Insets(0,1,2,1));
		container.add(btn5);
		btn5.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				inputNumber(e);
				
			}  			
		});
		
		//创建6按钮
		btn6=new JButton("6");
		btn6.setForeground(Color.BLUE);
		btn6.setMargin(new Insets(0,1,2,1));
		container.add(btn6);
		btn6.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				inputNumber(e);			
			}  			
		});
		
		//创建7按钮
		btn7=new JButton("7");
		btn7.setForeground(Color.BLUE);
		btn7.setMargin(new Insets(0,1,2,1));  		
		container.add(btn7);
		btn7.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				inputNumber(e);
				
			}  			
		});		
		
		//创建8按钮
		btn8=new JButton("8");
		btn8.setForeground(Color.BLUE);
		btn8.setMargin(new Insets(0,1,2,1));
		container.add(btn8);
		btn8.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				inputNumber(e);			
			}  			
		});
		
		//创建9按钮
		btn9=new JButton("9");
		btn9.setForeground(Color.BLUE);
		btn9.setMargin(new Insets(0,1,2,1));
		container.add(btn9);
		btn9.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				inputNumber(e);				
			}  			
		});
		
		//创建A按钮
		btnA=new JButton("A");
		btnA.setForeground(Color.BLUE);
		btnA.setMargin(new Insets(0,1,2,1));
		container.add(btnA);
		btnA.addActionListener(new ActionListener(){			
			public void actionPerformed(ActionEvent e) {
				inputNumber(e);
			}
			
		});
		
		
		//创建B按钮
		btnB=new JButton("B");
		btnB.setForeground(Color.BLUE);
		btnB.setMargin(new Insets(0,1,2,1));
		container.add(btnB);
		btnB.addActionListener(new ActionListener(){			
			public void actionPerformed(ActionEvent e) {
				inputNumber(e);
			}
			
		});
		
		//创建C按钮
		btnC=new JButton("C");
		btnC.setForeground(Color.BLUE);
		btnC.setMargin(new Insets(0,1,2,1));
		container.add(btnC);
		btnC.addActionListener(new ActionListener(){			
			public void actionPerformed(ActionEvent e) {
				inputNumber(e);
			}			
		});
		
		//创建D按钮
		btnD=new JButton("D");
		btnD.setForeground(Color.BLUE);
		btnD.setMargin(new Insets(0,1,2,1));
		container.add(btnD);
		btnD.addActionListener(new ActionListener(){			
			public void actionPerformed(ActionEvent e) {
				inputNumber(e);
			}
			
		});
		
		//创建E按钮
		btnE=new JButton("E");
		btnE.setForeground(Color.BLUE);
		btnE.setMargin(new Insets(0,1,2,1));
		container.add(btnE);
		btnE.addActionListener(new ActionListener(){		
			public void actionPerformed(ActionEvent e) {
				inputNumber(e);
			}			
		});
		
		//创建F按钮
		btnF=new JButton("F");
		btnF.setForeground(Color.BLUE);
		btnF.setMargin(new Insets(0,1,2,1));
		container.add(btnF);	
		btnF.addActionListener(new ActionListener(){			
			public void actionPerformed(ActionEvent e) {
				inputNumber(e);
			}
			
		});
		
		//创建+/-按钮
		btnSign=new JButton("+/-");
		btnSign.setForeground(Color.BLUE);
		btnSign.setMargin(new Insets(0,1,2,1));
		container.add(btnSign);
		btnSign.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {				
				if(isError==true){
					return;
				}
				
				String displayStr = displayField.getText();
				StringBuffer sb=new StringBuffer(displayStr);
				
				if(displayStr.equals("0.")&&isDot==false){
					return;
				}
				
				if(sb.charAt(0)=='-'){
					sb.deleteCharAt(0);
				}
				else{
					sb.insert(0,'-');
				}
				
				displayField.setText(sb.toString());				
			} 			
		});
		
		//创建.按钮
		btnDot=new JButton(".");
		btnDot.setForeground(Color.BLUE);
		btnDot.setMargin(new Insets(0,1,2,1));
		container.add(btnDot);
		btnDot.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				if(isError==true||rbHexadecimal.isSelected()||rbOctal.isSelected()||rbBinary.isSelected()){
					return;
				}
				if(isOperandBegin==true){
					displayField.setText("0.");
				}
				isOperandBegin=false;
				isDot=true;					
			}  			
		});
		
		
		//创建/按钮
		btnDivide=new JButton("/");
		btnDivide.setForeground(Color.RED);
		btnDivide.setMargin(new Insets(0,1,2,1));
		container.add(btnDivide);
		btnDivide.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				if(viewMenu_standarType.isSelected()){
					setOperatorForStandar(e);
				}
				else{
					setOperatorForScience(e);
				}
			}  			
		});
		
		
		//创建*按钮
		btnMultiply=new JButton("*");
		btnMultiply.setForeground(Color.RED);
		btnMultiply.setMargin(new Insets(0,1,2,1));
		container.add(btnMultiply);

⌨️ 快捷键说明

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