/**
*
* @author ty4z2008
*/
package work;
import java.awt.*;
import java.awt.event.*;
import java.text.DecimalFormat;
public class work {
public static void main(String args[]) {
tmp tmp = new tmp(); //使用函数调用来编写
}
}
class tmp extends Frame implements ActionListener {
private static final long serialVersionUID = 1L;
TextField Num1; //按钮
TextField Num2;
TextField Result;
Button plusBtn;
Button equalBtn;
Button clearBtn;
MenuBar bar =new MenuBar(); //菜单栏
Menu help=new Menu("帮助");
Menu about = new Menu("作者");
Panel p=new Panel();
tmp(){
Num1 = new TextField(10);
Num2 = new TextField(10);
Result = new TextField(20);
plusBtn = new Button("+");
equalBtn = new Button("=");
clearBtn = new Button("清零");
setSize(200,200);
add("South",p);
setMenuBar(bar); // 设置菜单栏为bar
bar.add(help);
bar.add(about);
setLayout(new FlowLayout());
add(Num1);
add(plusBtn);
add(Num2);
add(equalBtn);
add(Result);
add(clearBtn);
plusBtn.addActionListener(this); //事件监听
equalBtn.addActionListener(this);
clearBtn.addActionListener(this);
help.addActionListener(this);
about.addActionListener(this);
this.setBounds(200, 200, 500, 200); //设置界面大小
this.setVisible(true);
this.setTitle("简易计算器"); //标题
this.setResizable(true); //处理窗口关闭与最小化
clearBtn.setForeground(Color.red); //清零按钮
validate();
addWindowListener(new WindowAdapter()
{
@Override
public void windowClosing(WindowEvent e) //关闭事件监听
{
System.exit(0);
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource().equals(plusBtn)) { //按键处理
if (plusBtn.getLabel().equals("+")){
plusBtn.setLabel("-");
}
else if (plusBtn.getLabel().equals("-")){
plusBtn.setLabel("*");
}
else if(plusBtn.getLabel().equals("*")){
plusBtn.setLabel("/");
}else {
plusBtn.setLabel("+");
}
} else if(e.getSource().equals(equalBtn)) {
String numOne=Num1.getText(); //数字获取
String numTwo=Num2.getText();
float result = 0;
try{
if(plusBtn.getLabel().equals("+")){ //运算
result =Float.parseFloat(numOne)+Float.parseFloat(numTwo);
}else if(plusBtn.getLabel().equals("-")){
result =Float.parseFloat(numOne)-Float.parseFloat(numTwo);
}else if(plusBtn.getLabel().equals("*")){
result =Float.parseFloat(numOne)*Float.parseFloat(numTwo);
}else if(plusBtn.getLabel().equals("/")){
if(Float.parseFloat(numTwo) == 0){
Result.setText("被除数不能为0,请重新输入!");
return;
}
result =Float.parseFloat(numOne)/Float.parseFloat(numTwo);
}
}catch(Exception exception){ //容错处理
Result.setText("输入错误,请输入数字");
return;
}
DecimalFormat df = new DecimalFormat("####.00"); //处理两位小数
result = Float.parseFloat(df.format(result));
Result.setText(""+result); //显示结果
}else if(e.getSource().equals(clearBtn)){ //处理清零
Num1.setText("0");
Num2.setText("0");
Result.setText("0");
}
}
}