欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Cal-Kit,,package cal;

来源: javaer 分享于  点击 23252 次 点评:12

Cal-Kit,,package cal;


package cal;import java.awt.*;import java.applet.*;public class Cal extends Applet {    /**     *      */    private static final long serialVersionUID = 1L;    TextField tfAnswer; // display    Button bPoint, bEqual, bPlus, bMinus, bClear, bMulti, bDivision, bDel; // buttons    Button[] b = new Button[10];     String currentOp, preOp;     String foreText, backText;    boolean isFloat = false;    public void init() {        Panel panel1 = new Panel();        Panel panel2 = new Panel();        Panel panel3 = new Panel();        currentOp = new String("");        preOp = new String("");        foreText = new String("");        backText = new String("");        tfAnswer = new TextField(8);        setBackground(Color.lightGray); // color        setForeground(Color.black);         for (int i = 9; i >= 0; i--) {            b[i] = new Button(Integer.toString(i));            panel2.add(b[i]);         }        bPoint = new Button(".");        bEqual = new Button("=");        bEqual.setForeground(Color.red);         bClear = new Button("Clear");        bClear.setForeground(Color.black);        bDel = new Button("Del");        bDel.setForeground(Color.black);        bDivision = new Button("/");        bDivision.setForeground(Color.red);        bMulti = new Button("*");        bMulti.setForeground(Color.red);        bMinus = new Button("-");        bMinus.setForeground(Color.red);        bPlus = new Button("+");        bPlus.setForeground(Color.red);        setLayout(new FlowLayout());        panel1.setLayout(new FlowLayout());        panel2.setLayout(new GridLayout(4, 3));        panel3.setLayout(new GridLayout(4, 1));        panel1.add(tfAnswer);        panel1.add(bClear);        panel1.add(bDel);        panel2.add(bPoint);        panel2.add(bEqual);        panel3.add(bPlus);        panel3.add(bMinus);        panel3.add(bMulti);        panel3.add(bDivision);        add(panel1);        add(panel2);        add(panel3);    }    public boolean action(Event e, Object o) {         String s = new String();        for (int i = 0; i < 10; i++) {            if (e.target == b[i] || e.target == bPoint) {                if (e.target != bPoint) {                    s = (String) o;                    doForeText(s);                 }                if ((e.target == bPoint) && (!isFloat)) {                     isFloat = true;                     s = (String) o;                    if (foreText.equals("")) {                        foreText += "0.";                     } else {                        doForeText(s);                    }                }            }            if (e.target == bDel) {            }        }        if (e.target == bClear) {            doClear(); // clear all        }        if ((e.target == bMulti) || (e.target == bDivision)                || (e.target == bPlus) || (e.target == bMinus)) {             if (foreText == "") {                preOp = ((String) o);            } else {                currentOp = ((String) o);                doOperator();             }        }        if (e.target == bEqual) {             doOperator();         }        return true;    }    public void doOperator() {        double dFore, dBack;        Double d;        if (preOp.equals("")) {            backText = foreText;            foreText = "";            tfAnswer.setText(backText); // display        } else {            dFore = (new Double(foreText)).doubleValue();             dBack = (new Double(backText)).doubleValue();             foreText = "";            backText = tfAnswer.getText();            if (preOp.equals("+")) {                 d = new Double((dBack + dFore));                tfAnswer.setText(d.toString());                 backText = d.toString();                Double.parseDouble(backText);            }            if (preOp.equals("-")) {                d = new Double((dBack - dFore));                tfAnswer.setText(d.toString());                 backText = d.toString();            }            if (preOp.equals("*")) {                d = new Double((dBack * dFore));                tfAnswer.setText(d.toString());                backText = d.toString();            }            if (preOp.equals("/")) {                if (dFore == 0) {                    tfAnswer.setText("Error!!");                     return;                }                d = new Double((dBack / dFore));                tfAnswer.setText(d.toString());                backText = d.toString();            }        }        preOp = currentOp;    }    public void doForeText(String s) {        foreText += s;        tfAnswer.setText(foreText);     }    public void doBackText(String s) {        backText = foreText;        foreText = "";        tfAnswer.setText(foreText);     }    public void doClear() {         currentOp = "";        preOp = "";        foreText = "";        backText = "";        isFloat = false;        tfAnswer.setText("");    }}//该片段来自于http://byrx.net
相关栏目:

用户点评