【文章內(nèi)容簡(jiǎn)介】
TextComponent] ? void setText(String t) ? Component ? void setBackground(Color c) ? void setForeground(Color c) ? void setBounds(int x, int y, int width, int height) ? (blue,pink,green) 常數(shù) 25 CCIT軟件學(xué)院 3. 相關(guān)類與方法 ? Container ? void setLayout(LayoutManager mgr) ? add(Component p) ? ActionEvent ? String getActionCommand() ? Object getSource() [繼承于 EventObject] ? Button ? void addActionListener(ActionListener L) ? Double ? double doubleValue() 26 CCIT軟件學(xué)院 ? 1).定義相關(guān)組件和變量 ? 2).Applet的初始化 (init) ? 3).事件處理 (actionPerformed) ? 4).其他自定義方法 ? 方法: doOperator, doClear, doForeScreen 27 CCIT軟件學(xué)院 基本過程 1)輸入數(shù)據(jù) ?ForeScreen 2)輸入運(yùn)算符 ?OpCurrent ForeScreen?BackScreen(第一運(yùn)算數(shù) ), ForeScreen= OpCurrent?OpPre 3)輸入數(shù)據(jù) ?ForeScreen 4)輸入運(yùn)算符 ?OpCurrent BackScreen OpPre ForeScreen 運(yùn)算 運(yùn)算結(jié)果 ?BackScreen , ForeScreen= OpCurrent?OpPre 28 CCIT軟件學(xué)院 事件處理流程 事 件 來 源 為 B u t t o n“ C ”“ = ”運(yùn) 算 d o O p e r a t o r ( )清 除 d o C l e a r ( )數(shù) 字 或 ” . ”運(yùn) 算 符已 有 第 二 運(yùn) 算 數(shù)保 存 當(dāng) 前 運(yùn) 算 符 ,運(yùn) 算 d o O p e r a t o r ( )保 存 新 輸 入 的 運(yùn) 算 符 到O p e r a t o r P r e是 , 判 斷 按 鈕是否按 鈕 為 數(shù) 字追 加 輸 入 數(shù) 據(jù)d o F o r e S c r e e n ( s )是按 鈕 為 “ . ” 且 之 前 沒 有 輸 入過 “ . ” , 將 小 數(shù) 點(diǎn) “ . ” 追加 到 輸 入 的 數(shù) 據(jù) 后否結(jié) 束事 件 處 理開 始29 CCIT軟件學(xué)院 運(yùn)算過程 O p e r a t o r P r e 為 空為 空 表 示 還 沒 有 再 次輸 入 運(yùn) 算 符 或 “ = ”保 存 B a c k S c r e e n ( 第一 個(gè) 運(yùn) 算 數(shù) ) ,第 二 運(yùn) 算 數(shù) 置 為 空是兩 個(gè) 運(yùn) 算 數(shù)都 不 為 空否是將 運(yùn) 算 數(shù) 轉(zhuǎn) 換 為d o u b l e 型根 據(jù) 運(yùn) 算 符 進(jìn) 行相 應(yīng) 運(yùn) 算運(yùn) 算 后 將 結(jié) 果 作 為第 一 運(yùn) 算 數(shù) , 而 第二 運(yùn) 算 數(shù) 置 為 空結(jié) 束開 始運(yùn) 算30 CCIT軟件學(xué)院 1).定義相關(guān)組件和變量 //用于顯示輸入和輸出的文本框 private TextField tfAnswer。 //按鈕:數(shù)字 “ 0”“9” private Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9。 //按鈕: 依次為 “.”, “ =”, “ +”, “ ”, “ C”, “ *” , “ /” private Button bPoint,bEqual,bPlus,bMinus,bClear,bMulti,bDivision。 //當(dāng)前輸入的運(yùn)算符,前一個(gè)運(yùn)算符 private String OperatorCurrent,OperatorPre。 //運(yùn)算符前后的兩個(gè)運(yùn)算數(shù) (ForeScreen稱為第二運(yùn)算數(shù) ,BackScreen稱為第一運(yùn)算數(shù) ) private String ForeScreen,BackScreen。 //輸入數(shù)據(jù)是否為浮點(diǎn)數(shù) private boolean isFloat = false。 31 CCIT軟件學(xué)院 2).Applet的初始化 public void init() { OperatorCurrent = new String()。 OperatorPre = new String()。 ForeScreen = new String()。 BackScreen = new String()。 //設(shè)置 Applet組件的背景色和前景色 ()。 ()。 setLayout(null)。 //布局設(shè)置 tfAnswer = new TextField()。 //定義文本框組件的位置 (