Cal-Kit,,package cal;
分享于 点击 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
用户点评