資源簡介
JAVA計(jì)算器計(jì)算器有點(diǎn)小問題JAVA計(jì)算器計(jì)算器
代碼片段和文件信息
/*??App5_5B.java??*/
import?java.awt.*;
import?java.awt.event.*;
import?javax.swing.*;
public?class?App5_5B?extends?Japplet
{
????JButton?numberButton[];????????????????????//?數(shù)字鍵按鈕數(shù)組
????JButton?operationButton[];?????????????????//?運(yùn)算符號鍵按鈕數(shù)組
????JButton?radixPointButton;??????????????????//?小數(shù)點(diǎn)鍵按鈕
????JButton?equalMarkButton;???????????????????//?等號鍵按鈕
????JTextField?resultShow;?????????????????????//?顯示輸入數(shù)據(jù)或計(jì)算結(jié)果的文本框
????JPanel?textPanelbuttonPanel;??????????????//?文本框面板和按鈕面板
????String?operation?=?“+-*/“;?????????????????//?運(yùn)算符號
????double?result?=?0;?????????????????????????//?暫存運(yùn)算結(jié)果
????double?inputNumber?=0;?????????????????????//?暫存輸入數(shù)據(jù)
????double?leftNumber?=?0;?????????????????????//?暫存左操作數(shù)
????double?rightNumber?=?0;????????????????????//?暫存右操作數(shù)
????String?buttonNumberString?=?““;????????????//?暫時(shí)存輸入的數(shù)據(jù)串
????char?firstChar?=?‘@‘;??????????????????????//?讀取輸入的字符
????char?operatorChar?=?‘@‘;???????????????????//?暫存執(zhí)行的運(yùn)算符,初始化‘@‘字符表示即將輸入的是第一個(gè)操作數(shù)
????double?radixPointNumber?=?1.0;?????????????//?位權(quán),用于處理輸入的小數(shù)部分
????boolean?radixPointFlag?=?false;????????????//?輸入小數(shù)標(biāo)志,初值為false表示輸入整數(shù)部分
????boolean?inputFlag?=?false;
????double?dataStack[]?=?new?double[3];????????//?數(shù)據(jù)棧,用于暫存輸入操作數(shù)和計(jì)算結(jié)果
????int?dataStackPointer?=?0;??????????????????//?數(shù)據(jù)棧指針
????char?operatorStack[]?=?new?char[3];????????//?運(yùn)算符棧,用于暫存即將計(jì)算的運(yùn)算符
????int?operatorStackPointer?=?0;??????????????//?運(yùn)算符棧指針
????public?void?init(?)
????{
????????this.resize(260180);
????????Container?c?=?getContentPane(?);
????????//?c.setLayout(new?BorderLayout(?));?????????????????????????//?默認(rèn)為邊界布局
????????resultShow?=?new?JTextField(“0“23);?????????????????????????//?創(chuàng)建入數(shù)據(jù)或計(jì)算結(jié)果的文本框
????????resultShow.setHorizontalAlignment(JTextField.LEFT);??????????//?設(shè)置左靠齊
????????resultShow.setForeground(Color.blue);
????????resultShow.setFont(new?Font(“TimesRoman“Font.PLAIN14));????//?設(shè)置字體
????????resultShow.setBackground(Color.white);
????????resultShow.setEditable(false);
????????textPanel?=?new?JPanel(?);???????????????????????????????????//?創(chuàng)建文本框面板
????????textPanel.add(resultShow);
????????resultShow.addKeyListener(new?KeyList(?));???????????????????//?注冊鍵盤事件
????????resultShow.requestFocus(?);??????????????????????????????????//?獲取焦點(diǎn)
????????numberButton=new?JButton[10];????????????????????????????????//?共有10個(gè)數(shù)字鍵
????????for?(int?i=0;?i<=9;?i++)?????????????????????????????????????//?創(chuàng)建10個(gè)數(shù)字鍵按鈕并注冊動(dòng)作事件
????????{
????????????numberButton[i]?=?new?JButton(Integer.toString(i));
????????????numberButton[i].addActionListener(new?ActList(?));???????//?注冊動(dòng)作事件
????????????numberButton[i].setForeground(Color.black);
????????}
????????operationButton=new?JButton[4];??????????????????????????????//?共有4個(gè)運(yùn)算符號
????????for?(int?i=0;?i<4;?i++)??????????????????????????????????????//?創(chuàng)建4個(gè)運(yùn)算符號鍵按鈕并注冊動(dòng)作事件
????????{
????????????operationButton[i]?=?new?JButton(Character.toString(operation.charAt(i)));
????????????operationButton[i].addActionListener(new?ActList(
評論
共有 條評論