當前位置:編程學習大全網 - 編程語言 - 求JAVA計算器源代碼!!!

求JAVA計算器源代碼!!!

類計算器擴展窗口適配器實現ActionListener//創建壹個計算器類並實現action listener接口。

{

//result表示最後壹次操作的結果;Data1表示當前文本框中顯示的數字,radixPointDepth表示小數位數。

private double result=0,data1=0,radix point depth = 3;

result指示是否劃等號,結果是必需的。

///radixPointIndicate表示小數點是否已命中。

private boolean radix point indicate = false,resultIndicate = false

private char prec = '+';//表示當前運算符。

private JFrame f;//創建壹個窗口

私有TextField tf//創建壹個文本框來存儲結果。

私人按鈕b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b 17;//創建按鈕

私人小組p;//創建/面板容器

公共void init()

{

F=new JFrame(“計算器”);

p = new Panel();//操作界面p

p.setLayout(new GridLayout(4,4));//將P的布局設置為GridLayout,四行四列。

tf =新文本字段(30);

//實例化按鈕

b 1 =新建按鈕(" 7 ");

b2 =新建按鈕(" 8 ");

b3 =新建按鈕(" 9 ");

b4 =新建按鈕(“+”);

b5 =新建按鈕(" 4 ");

b6 =新建按鈕(" 5 ");

b7 =新建按鈕(" 6 ");

b8 =新建按鈕("-");

b9 =新建按鈕(" 1 ");

b 10 =新建按鈕(" 2 ");

b 11 =新建按鈕(" 3 ");

b 12 =新建按鈕(" * ");

b 13 =新建按鈕(" 0 ");

b 14 =新建按鈕(".");

b 15 =新建按鈕(" = ");

b 16 =新建按鈕("/");

b 17 =新建按鈕(“重置”);

f.add(tf," North ");//在框架上方添加文本區域。

f.add(p,“中心”);//將面板添加到框架的中間。

f.add(b17,“南”);//將按鈕(清除)添加到框架的底部。

//向面板添加壹個按鈕

p . add(b 1);

p . add(B2);

p . add(B3);

p . add(B4);

p . add(b5);

p . add(B6);

p . add(B7);

p . add(b8);

p . add(B9);

p . add(b 10);

p . add(b 11);

p . add(b 12);

p . add(b 13);

p . add(b 14);

p . add(b 15);

p . add(b 16);

//為按鈕添加監視器

b 1 . addactionlistener(this);

B2 . addactionlistener(this);

B3 . addactionlistener(this);

B4 . addactionlistener(this);

b5 . addactionlistener(this);

B6 . addactionlistener(this);

B7 . addactionlistener(this);

b8 . addactionlistener(this);

B9 . addactionlistener(this);

b 10 . addactionlistener(this);

b 11 . addactionlistener(this);

b 12 . addactionlistener(this);

b 13 . addactionlistener(this);

b 14 . addactionlistener(this);

b 15 . addactionlistener(this);

b 16 . addactionlistener(this);

b 17 . addactionlistener(this);

f . addwindowlistener(this);//添加監聽幀

f.setSize(300,190);//設置框架的大小

f . set visible(true);//將框架設置為可見

}

//偵聽器,偵聽actionEvent事件。

公共無效操作已執行(操作事件e)

{

字符串s;

s = e . getactioncommand();//s存儲點擊的命令字符串。

//開關開關

開關(s.charAt(0))

{

案例“0”:

案例“1”:

案例“2”:

案例“3”:

案例“4”:

案例“5”:

案例“6”:

案例“7”:

案例“8”:

情況“9”://按“0-9”執行以下操作。

If(resultIndicate) //如果打了等號,直接打了數字,說明開始了壹個新的操作,所有內容都初始化了。

{

結果= 0;

data 1 = 0;

prec = '+';

}

Integer int 1 =新的整數;

If(radix point)//如果命中小數點,

{

radix point depth = radix point depth/10;

data 1 = data 1+(int 1 . int value())* radix point depth;

}

其他

{

data 1 = data 1 * 10+(int 1 . int value());

}

Double display number = new Double(data 1);

TF . settext(display number . tostring());

resultIndicate = false//只要按了數字鍵,就說明新的結果還沒有計算出來,所以是假的。

打破;

大小寫“+”:

大小寫'-':

大小寫' * ':

案例“/”:

Case '='://按"+,-,*,/"並執行以下內容。

if(s.charAt(0)!= ' = ' & amp& amp結果指示)

//如果敲擊+、-、*、/等,結果已經計算出來,則取新的運算符,所以為false;代表連續操作

//prec存儲新抽頭的運算符。

{

prec = s . charat(0);

resultIndicate = false

}

其他

{

//使用開關計算“+、-、*、/”的結果。

開關(精確)

{

大小寫“+”:

結果=結果+數據1;

打破;

大小寫'-':

結果=結果-數據1;

打破;

大小寫' * ':

結果= result * data 1;

打破;

案例“/”:

結果=結果/數據1;

打破;

}

}

radixPointIndicate = false//如果命中運算符or =,則視為操作數結束;所以小數點要清零

radix point depth = 1;

displayNumber=new Double(結果);//在文本框中顯示最新的計算結果。

TF . settext(display number . tostring());

//監聽“=”是否被按下。

if(s.charAt(0)!= ' = ')//如果沒有劃等號,那麽就劃+、-、*、/然後清除data1。

{

data 1 = 0;

prec = s . charat(0);

}

其他

{

resultIndicate = true//僅當等號被劃上時,resultIndicate為true,否則為false。

}

打破;

案例“.”:

radixPointIndicate = true

打破;

}

//監控是否“清晰”;如果是,清除所有數據。

If(s等於(" clear "))

{

結果= 0;

data 1 = 0;

radix point depth = 1;

TF . settext(" ");

}

}

  • 上一篇:金屬工藝實習 英文 課程描述
  • 下一篇:襄樊北街的北街的發展與規劃
  • copyright 2024編程學習大全網