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

📄 calculator.java

📁 一款模拟windows的计算器
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
						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(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);
		btnMultiply.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				if(viewMenu_standarType.isSelected()){
					setOperatorForStandar(e);
				}
				else{
					setOperatorForScience(e);
				}
			}
		});

		//创建-按钮
		btnMinus=new JButton("-");
		btnMinus.setForeground(Color.RED);
		btnMinus.setMargin(new Insets(0,1,2,1));
		container.add(btnMinus);
		btnMinus.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				if(viewMenu_standarType.isSelected()){
					setOperatorForStandar(e);
				}
				else{
					setOperatorForScience(e);
				}
			}
		});


		//创建+按钮
		btnPlus=new JButton("+");
		btnPlus.setForeground(Color.RED);
		btnPlus.setMargin(new Insets(0,1,2,1));
		container.add(btnPlus);
		btnPlus.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				if(viewMenu_standarType.isSelected()){
					setOperatorForStandar(e);
				}
				else{
					setOperatorForScience(e);
				}
			}
		});

		//创建=按钮
		btnEqualSign=new JButton("=");
		btnEqualSign.setForeground(Color.RED);
		btnEqualSign.setMargin(new Insets(0,1,2,1));
		container.add(btnEqualSign);
		btnEqualSign.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {

				if(isError==true||(isOperandBegin&&command.equals("="))){
					return;
				}

				if(viewMenu_scienceType.isSelected()){
					if(lbracketNum>0){
						//必须补全右括弧方可进行整个式子的计算
						return;
					}
					setOperatorForScience(e);
					return;
				}

				String tempStr=getPlainStr(displayField.getText());

				if(isFirstEqual){
					secondOperand=tempStr;
					calculateStandar(tempStr);
					isOperandBegin=true;
					isFirstEqual=false;
				}
				else
				{
					calculateStandar(secondOperand);
					isOperandBegin=true;
				}
				isFirstOprator=true;
				isDot=false;
				canExp=false;
				cbInv.setSelected(false);
				cbHyp.setSelected(false);
			}

		});

		//创建sqrt按钮
		btnSqrt=new JButton("sqrt");
		btnSqrt.setForeground(Color.BLUE);
		btnSqrt.setMargin(new Insets(0,1,2,1));
		container.add(btnSqrt);
		btnSqrt.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				if(isError==true){
					return;
				}

⌨️ 快捷键说明

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