package guiawt;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Calcuate extends WindowAdapter implements ActionListener
{
String s ;
TextField t;
double num1;
double num2;
int x;
public void windowClosing(WindowEvent e) {System.exit(0);}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("C"))
t.setText("");
else if(e.getActionCommand().equals("+"))
{
s = t.getText();
num1 = Double.parseDouble(s);
t.setText("");
x=0;
}
else if(e.getActionCommand().equals("-"))
{
s = t.getText();
num1 = Double.parseDouble(s);
t.setText("");
x=1;
}
else if(e.getActionCommand().equals("*"))
{
s=t.getText();
num1=Double.parseDouble(s);
t.setText("");
x=2;
}
else if(e.getActionCommand().equals("%"))
{
s=t.getText();
num1=Double.parseDouble(s);
t.setText("");
x=3;
}
else if(e.getActionCommand().equals("="))
{
s = t.getText();
num2 = Double.parseDouble(s);
switch(x)
{
case 0 : t.setText("" + (num1 + num2));break;
case 1 : t.setText("" + (num1 - num2));break;
case 2 : t.setText("" + (num1 * num2));break;
case 3 : t.setText("" + (num1 % num2));break;
}
}
else if(e.getActionCommand().equals("."))
{
if(t.getText().trim().indexOf('.')!=-1){}
else
{
s = t.getText();
s = s + e.getActionCommand();
t.setText(s);
}
}
else
{
String s = t.getText();
s = s + e.getActionCommand();
t.setText(s);
}
}
public Calcuate()
{
Frame f = new Frame("我的计算器");
t = new TextField();
f.add(t,BorderLayout.NORTH);
f.setSize(300,270);
Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17;
f.addWindowListener(this);
b0= new Button("MC");
b1= new Button("MR");
b2= new Button("MS");
b3= new Button("M+");
b4= new Button("M-");
b5= new Button("<-");
b6= new Button("CE");
b7= new Button("C");
b8= new Button("+-");
b9= new Button("sqrt");
b10=new Button("+");
b11=new Button("-");
b12=new Button("*");
b13=new Button("/");
b14=new Button("%");
b15=new Button(".");
b16=new Button("1/x");
b17=new Button("=");
Button b[]=new Button[10];
for(int i=0;i<b.length;i++)
b[i]=new Button(""+i);
b[0].addActionListener(this);
b[1].addActionListener(this);
b[2].addActionListener(this);
b[3].addActionListener(this);
b[4].addActionListener(this);
b[5].addActionListener(this);
b[6].addActionListener(this);
b[7].addActionListener(this);
b[8].addActionListener(this);
b[9].addActionListener(this);
b7.addActionListener(this);
b10.addActionListener(this);
b11.addActionListener(this);
b12.addActionListener(this);
b14.addActionListener(this);
b17.addActionListener(this);
b15.addActionListener(this);
Panel p = new Panel();
p.setLayout(new GridLayout(5,5,5,5));
p.add(b0);p.add(b1);p.add(b2);p.add(b3);p.add(b4);
p.add(b5);p.add(b6);p.add(b7);p.add(b8);p.add(b9);
p.add(b[7]);p.add(b[8]);p.add(b[9]);p.add(b13);p.add(b14);
p.add(b[4]);p.add(b[5]);p.add(b[6]);p.add(b12);p.add(b16);
p.add(b[1]);p.add(b[2]);p.add(b[3]);p.add(b11);p.add(b10);
f.add(p,BorderLayout.CENTER);
Panel p1 = new Panel();
p1.setLayout(new GridLayout(1,3,5,5));
p1.add(b[0]);p1.add(b15);p1.add(b17);
f.add(p1,BorderLayout.SOUTH);
f.setVisible(true);
}
public static void main(String[] args)
{
Calcuate cc = new Calcuate();
}
}
Java实现简单计算器的加减乘除功能
最新推荐文章于 2024-05-10 12:47:08 发布