import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Font;
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 Calculate extends Frame{
public static void main(String[] args){
new Calculate().init();
}
private boolean isPress = false;
private boolean iscalc = true;
private int num;
private int result =0;
private String kno = "";
private String keySign = "";
private String operSign;
private String oper = "+";
private TextField tx;
private Panel pa;
private String[] str = {"1","2","3","4","5","6","7","8","9","0","+","-","*","/","=","C"};
private Button bt;
public void init(){
setTitle("计算器");
setBounds(400, 200, 320, 350);
tx = new TextField();
pa = new Panel(new GridLayout(4,4,10,10));
tx.setEditable(false);
tx.setBackground(Color.WHITE);
tx.setFont(new Font("宋体",Font.BOLD,28));
pa.setFont(new Font("宋体",Font.BOLD,24));
add(tx,BorderLayout.NORTH);
add(pa);
for(String s: str){
bt = new Button(s);
pa.add(bt);
bt.addActionListener(new BtLsn());
}
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev) {
System.exit(0);
}
});
setVisible(true);
}
class BtLsn implements ActionListener{
public void actionPerformed(ActionEvent en) {
keySign = en.getActionCommand();
if(keySign.charAt(0)>='0' &;&; keySign.charAt(0)<='9'){
kno += keySign;
if(isPress){
System.out.println("进入数字判断语句");
tx.setText("");
isPress = false;
iscalc = true;
}
System.out.println("kno = "+kno);
tx.setText(kno);
}else if(keySign.charAt(0)=='+'||keySign.charAt(0)=='-'||keySign.charAt(0)=='*'||keySign.charAt(0)=='/'){
// num = Integer.parseInt(tx.getText());
num = Integer.parseInt(kno);
operSign = keySign;
isPress = true;
kno = "";
if(iscalc){
calc();
oper = operSign;
iscalc = false;
}
}else if(keySign.charAt(0)=='='){
// num = Integer.parseInt(tx.getText());
num = Integer.parseInt(kno);
calc();
oper = "+";
}else if(keySign.charAt(0)=='C'){
tx.setText("");
kno = "";
num = 0;
result = 0;
}
}
}
public void calc(){
switch(oper.charAt(0)){
case '+':result = result + num;break;
case '-':result = result - num;break;
case '*':result = result * num;break;
case '/':result = result / num;break;
}
tx.setText(""+result);
System.out.println("result = "+result);
}
}