📄 caculator.java
字号:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.lang.Math;
public class caculator implements ActionListener {
//定义按钮
private double op1;
private double op2;
private int flag;
private String str="";
JButton backbutton=new JButton("Backspace");
JButton clearbutton=new JButton("Clear");
JButton num0=new JButton("0");
JButton num1=new JButton("1");
JButton num2=new JButton("2");
JButton num3=new JButton("3");
JButton num4=new JButton("4");
JButton num5=new JButton("5");
JButton num6=new JButton("6");
JButton num7=new JButton("7");
JButton num8=new JButton("8");
JButton num9=new JButton("9");
JButton add=new JButton("+");
JButton mul =new JButton("*");
JButton div=new JButton("/");
JButton sub =new JButton("-");
JButton equel=new JButton("=");
JButton point=new JButton(".");
JButton sqrt=new JButton("sqrt");
JButton xfall=new JButton("1/x");
JButton pingfang=new JButton("x2");
JButton zhengfu =new JButton("+/-");
JButton sin=new JButton("sin");
JButton cos=new JButton("cos");
JButton tan=new JButton("tan");
JButton jiecheng=new JButton("n!");
JButton ln=new JButton("ln");
JTextField display=new JTextField(" ");
JPanel p1,p2,p3;
public void go(){//构造函数
JPanel p1=new JPanel (new FlowLayout());
backbutton.addActionListener(this);
p1.add(backbutton);
clearbutton.addActionListener(this);
p1.add(clearbutton);
JPanel p2=new JPanel(new GridLayout(2,1));
p2.add(display);
p2.add(p1);
JPanel p3=new JPanel(new GridLayout(5,5));
num7.addActionListener(this);
num8.addActionListener(this);
num9.addActionListener(this);
num6.addActionListener(this);
num5.addActionListener(this);
num4.addActionListener(this);
num3.addActionListener(this);
num2.addActionListener(this);
num1.addActionListener(this);
num0.addActionListener(this);
equel.addActionListener(this);
point.addActionListener(this);
sqrt.addActionListener(this);
xfall.addActionListener(this);
pingfang.addActionListener(this);
zhengfu.addActionListener(this);
add.addActionListener(this);
sub.addActionListener(this);
mul.addActionListener(this);
div.addActionListener(this);
sin.addActionListener(this);
cos.addActionListener(this);
tan.addActionListener(this);
jiecheng.addActionListener(this);
ln.addActionListener(this);
p3.add(num7);
p3.add(num8);
p3.add(num9);
p3.add(div);
p3.add(sqrt);
p3.add(num4);
p3.add(num5);
p3.add(num6);
p3.add(mul);
p3.add(xfall);
p3.add(num1);
p3.add(num2);
p3.add(num3);
p3.add(sub);
p3.add(pingfang);
p3.add(num0);
p3.add(point);
p3.add(zhengfu);
p3.add(add);
p3.add(ln);
p3.add(sin);
p3.add(cos);
p3.add(tan);
p3.add(jiecheng);
p3.add(equel);
JFrame f=new JFrame("简易计算器");
f.add(p2,BorderLayout.NORTH);
f.add(p3,BorderLayout.SOUTH);
f.setVisible(true);
f.setSize(200, 200);
f.pack();
f.setResizable(false);
}
public static void main( String[] args)
{
caculator k=new caculator();
k.go();
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==clearbutton)
{
display.setText(" "); //置0;
str="";
}
if(e.getSource()==backbutton)
{//退格
String str=display.getText();
str=str.substring(0,str.length()-1);
display.setText(str);
}
if(e.getSource()==num9||e.getSource()==num8||e.getSource()==num7||e.getSource()==num6||e.getSource()==num5||e.getSource()==num4||e.getSource()==num3||e.getSource()==num2||e.getSource()==num1||e.getSource()==num0)
{//数字
str=display.getText();
display.setText(str.concat(e.getActionCommand()).toString());
}
if(e.getSource()==point)
{//小数点
if(str=="") display.setText("0.");
if(display.getText().indexOf(".")!=-1)return ;//已有小数点
else display.setText(display.getText()+"."); //接上point
}
if(e.getSource()==add||e.getSource()==mul||e.getSource()==div||e.getSource()==sub)
{//双目运算
op1=Double.valueOf(display.getText());
str="";
display.setText(str);
if(e.getSource()==add) flag=1;
if(e.getSource()==sub) flag=2;
if(e.getSource()==mul) flag=3;
if(e.getSource()==div) flag=4;
}
if(e.getSource()==equel)
{//等号
if(display.getText()=="") op2=0;
else
{ str=display.getText();
op2=Double.valueOf(str);
}
if(flag==1) {op1=op1+op2; display.setText(String.valueOf(op1));}
if(flag==2) {op1=op1-op2; display.setText(String.valueOf(op1));}
if(flag==3) {op1=op1*op2; display.setText(String.valueOf(op1));}
if(flag==4) {op1=op1/op2; display.setText(String.valueOf(op1));}
}
if(e.getSource()==zhengfu)
{ Double x=Double.valueOf(display.getText());
x=-x;
display.setText(x.toString());
}
if(e.getSource()==sqrt)
{
Double x=Double.valueOf(display.getText());
x=Math.sqrt(x);
display.setText(x.toString());
}
if(e.getSource()==xfall)
{
Double x=Double.valueOf(display.getText());
x=1/x;
display.setText(x.toString());
}
if(e.getSource()==pingfang)
{
Double x=Double.valueOf(display.getText());
x=x*x;
display.setText(x.toString());
}
if(e.getSource()==tan)
{
Double x=Double.valueOf(display.getText());
x=Math.PI*x/180;
x=Math.tan(x);
display.setText(x.toString());
}
if(e.getSource()==sin)
{
Double x=Double.valueOf(display.getText());
x=Math.PI*x/180;
x=Math.sin(x);
display.setText(x.toString());
}
if(e.getSource()==cos)
{
Double x=Double.valueOf(display.getText());
x=Math.PI*x/180;
x=Math.cos(x);
display.setText(x.toString());
}
if(e.getSource()==jiecheng)
{ int i;
double sum=1;
Double x=Double.valueOf(display.getText());
for(i=1;i<=x;i++)
sum=sum*i;
x=sum;
display.setText(x.toString());
}
if(e.getSource()==ln)
{
Double x=Double.valueOf(display.getText());
x=Math.log(x);
display.setText(x.toString());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -