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

📄 calculator.java

📁 java做的一个计算器
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Calculator extends WindowAdapter  implements ActionListener
{
	private String str1="",str="+";
	private static double d=0,d1=0,d2=0,d3=0;
	private boolean res=true,point=true;
	Frame f=new Frame("计算器");
	JTextField tf=new JTextField(20);
	JPanel p1=new JPanel();
	JPanel p2=new JPanel();
	JButton b1=new JButton("Backspace");
	JButton b2=new JButton("   CE   ");
	JButton b3=new JButton("    C    ");
	String a[]={"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-"," 1/x ","0","+/-",".","+","="};
	JButton b[]=new JButton[a.length];
	public static void main(String args[])
	{
	    Calculator one=new Calculator();
	    one.go();
	}
	public void go()
	{
		p1.add(b1);
		p1.add(b2);
		p1.add(b3);
		p2.setLayout(new GridLayout(4,5,3,3));
		for(int i=0;i<a.length;i++)
		{
			b[i]=new JButton(a[i]);
			p2.add(b[i]);
			b[i].addActionListener(this);
		}
		b1.addActionListener(this);
		b2.addActionListener(this);
		b3.addActionListener(this);
		f.add(tf,"North");
		f.add(p1,"Center");
		f.add(p2,"South");
		tf.setEditable(false);
		tf.setBackground(Color.white);
		tf.setHorizontalAlignment(JTextField.RIGHT);
		f.addWindowListener(this);
		f.setSize(303,210);
		f.setBackground(Color.LIGHT_GRAY);
		f.setResizable(false);
		f.setVisible(true);
	}
	public void windowClosing(WindowEvent e)
	{System.exit(0);}
	public void actionPerformed(ActionEvent e)
	{
		String s=e.getActionCommand();
		if(s.equals("    C    "))
		{
			tf.setText(str1="");reset();d1=0;
			point=true;
		}
		switch(s.charAt(0))
		{
			case '0': case '1': case '2': case '3': case '4': 
			case '5': case '6': case '7': case '8': case '9':
				str1+=s;
				d=Double.parseDouble(str1);
				print(d);
			break;
			case '.':
			    if(point)
			    {
			      if(str1=="") {str1="0."+str1;d=Double.parseDouble(str1);tf.setText(str1);}
			     else
			     {str1=str1+".";d=Double.parseDouble(str1);tf.setText(str1);}
			      point=false;
			    }
			    else break;
			    break;
			case '+':
				d1+=d;
				str="+";
				reset();
				point=true;
				break;
			case '-':
			    if(d1==0)d1=d;else
				d1-=d;
				str="-";
				reset();
				point=true;
				break;
			case '*':
			    if(d1==0)d1=d;else
				d1*=d;
				str="*";
				reset();
				point=true;
				break;
			case '/':
			    if(d==0) break;
			    if(d1==0)d1=d;else
				d1/=d;
				str="/";
				reset();
				point=true;
				break;
			case '=':
				if(str.equals("+")) {d1+=d;reset();}
				if(str.equals("-")) {d1-=d;reset();}
				if(str.equals("*")) {d1*=d;d=1;str1="";}
				if(str.equals("/")) {if(d==0) break;else {d1/=d;d=1;str1="";}}
				print(d1);
				break;
			case 'B':
			    if(str1.length()==1) str1="0";else
			    str1=str1.substring(0,str1.length()-1);
			    d=Double.parseDouble(str1);
			    print(d);
				break;
		}
	}
	public void print(double a1)
	{
		int a2=(int)a1;
		if(a1==a2) tf.setText(Integer.toString(a2));
		else tf.setText(Double.toString(a1));
	}
	public void reset()
	{d=0;str1="";}
}

⌨️ 快捷键说明

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