import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator implements ActionListener{
private double data1=0.0,data2=0.0;
private String t_content;
boolean number=false;
//key用来标示用户所按下的按钮即加减乘除
//key为0标示+,为1表示-,为2表示*,为3表示/
short key=-1;
//pkey的取值为-1~5
//pkey为-1表示第一次按下=按钮,为5说明不是第一次按下=按钮
//pkey为其他值0,1,2,3时分别代表+,-,*,/
short pkey=-1;
Frame frame=new Frame("Calculator");//定义标题为Calculator的窗体
JTextField textfield=new JTextField(30);//定义计算机
//定义backspace,ce,c0按钮
JButton backspace=new JButton("Backspace");
JButton ce=new JButton("CE");
JButton c0=new JButton("C");
//定义面板,其中backspace,ce,c0按钮和
计算机兰textfeild放在面板p1中
//其余按钮放在面板p2中
JPanel p1=new JPanel();
JPanel p2=new JPanel();
//定义界面上的按钮数组,即除去backspace,ce,c0按钮的所有按钮
String names[]={"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0","+/-",".","+","="};
JButton bb[]=new JButton[names.length];
public static void main(String[] args){
Calculator cal=new Calculator();
cal.go();
}
public void go(){
frame.setLocationRelativeTo(null);
frame.setSize(400,230);
frame.setLayout(new BorderLayout());
Image icon = Toolkit.getDefaultToolkit().getImage("E:\\Study Work\\JAVA_workspace\\
Java_0014\\Calculator256.png");
frame.setIconImage(icon);
Font fonts=new Font("楷体_GB2312",Font.PLAIN,12); // 第一页
//设置面板p1的字体和布局管理类型,将textfeild对象添加到面板中
p1.setFont(fonts);
p1.setLayout(new GridLayout(2,1,5,10));
textfield.setFont(fonts);
textfield.setHorizontalAlignment(JTextField.RIGHT);
textfield.setEditable(false);
p1.add(textfield,null);
//backspace,ce,c0按钮注册addActionListener方法
backspace.addActionListener(this);
ce.addActionListener(this);
c0.addActionListener(this);
//将backspace,ce,c0按钮添加到p1面板中
p1.add(backspace,null);
p1.add(ce,null);
p1.add(c0,null);
//设置面板p2的布局管理器类型为GridLayout
p2.setLayout(new GridLayout(4,5,5,5));
//为按钮组中的按钮
注册addActionListener方法
for(int i=0;i
bb[i]=new JButton(names[i]);
p2.add(bb[i]);
bb[i].addActionListener(this);
}
//设置面板p1和面板p2在窗体中的位置
//面板p1在窗体的North方向,面板p2在窗体的South方向
frame.add(p1,BorderLayout.NORTH);
frame.add(p2,BorderLayout.SOUTH);
frame.setVisible(true);
//当单击关闭按钮时退出系统
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent ae){
String s;
//通过ActionEvent类的getActionC
ommand()方法,得出动作是由哪个按钮触发的。 //第二页
s=ae.getActionCommand();
//用户单击一次,计算栏里便去掉一个字符
//先将计算栏里的字符清空,再添加除最好一个字符的字符串
if(s.equals("Backspace")&;&;number){
t_content=textfield.getText();
textfield.setText("");
for(int i=0;i char c=t_content.charAt(i);
textfield.setText(textfield.getText()+c);
}
}
//用户单击的是CE按钮,计算栏清空
if(s.equals("CE")){
textfield.setText("");
number=false;
}
//用户单击的是C按钮
if(s.equals("C")){
textfield.setText("");
data1=data2=0.0;