1.设计界面

2.设计思路
①设计出界面
②JTextField在定义的时候构造函数可以给一个String参数作为初始内容,比如
JTextField jf = new JTextField(“a”);
这样界面上的JTextField显现出来时一开始显示的内容就是a了
计算器中可以一开始显示0
③定义两个属性(最好是double型)dataA和dataB,dataA存储目前显示的数据,dataB显示后台数据。一开始两个属性默认值都是0,当按下一个数字键,就将dataA中的数据乘以10再加上按下的键的数据,比如按下5之后dataA变成0*10+5=5,再按下6之后变成5*10+6=56。同时,注意每按下一个键之后给dataA赋值之后要将dataA的数据显示在JTextField上,可以用jf.setText(dataA);来实现。可以定义一个方法
public void setdataA(double newdata){
dataA= newdata;
jf.setText(dataA);
}
这样每次给dataA赋值都会自动改变JTextField的内容
④定义一个isspot属性(boolean型),默认是false型,当按下”.”按钮后变成true;再定义一个属性dedigits(int型),从来存储小数位数,默认是0。当isspot为true时再按下一个数字键则将这个数字除以(dedigits+1)个10之后加到dataA上,再讲dedigits加1。当dedigits等于0的时候,也就是还没有小数位的时候,再按下”.”按钮,可以将isspot变成false。但dedigits大于0的时候,此时已经有小数位了,所以按下”.”不做任何操作,isspot也还是true。
⑤定义一个operation属性(int型),默认是0。当按下”+”键将其赋值为0,”-”键将其赋值为1,”×”键将其赋值为2,”÷”键将其赋值为3。同时,按下加减乘除任何键的时候,先将dataB与dataA作相应操作后将结果赋值给dataB,然后将dataA清零,isspot赋值false, dedigits赋值0。不理解的话可以看最后的流程。
⑥按下”C”的时候给dataA赋值0,按下”CE”的时候给dataA和dataB都赋值0
⑦按下等于号的时候先将dataB与dataA作相应操作后将结果赋值给dataA,operation赋值为0。再定义一个属性isequal(boolean型),默认为false,只有按下等于号后才变成true。当isequal为true时按下任何数字键都会执行一次按下”CE”的事件,然后将isequal变为false,之后再执行相应的事件,
3.流程示意
|
操作 |
JTextField |
dataA |
dataB |
isspot |
dedigits |
operation |
isequal |
|
|
0 |
0 |
0 |
false |
0 |
0 |
false |
|
按下5 |
5 |
5 |
0 |
false |
0 |
0 |
false |
|
按下7 |
57 |
57 |
0 |
false |
0 |
0 |
false |
|
按下. |
57 |
57 |
0 |
true |
0 |
0 |
false |
|
按下6 |
57.6 |
57.6 |
0 |
true |
1 |
0 |
false |
|
按下. |
57.6 |
57.6 |
0 |
true |
1 |
0 |
false |
|
按下8 |
57.68 |
57.68 |
0 |
true |
2 |
0 |
false |
|
按下- |
0 |
0 |
57.68 |
false |
0 |
1 |
false |
|
按下3 |
3 |
3 |
57.68 |
false |
0 |
1 |
false |
|
按下1 |
31 |
31 |
57.68 |
false |
0 |
1 |
false |
|
按下= |
26.68 |
26.68 |
57.68 |
false |
0 |
1 |
true |
|
按下9 |
9 |
9 |
0 |
false |
0 |
0 |
false |

本文详细介绍了一个简易计算器的设计思路和实现流程,包括界面设计、按键功能处理、数字输入、小数点逻辑、运算符操作及等号键功能。通过具体实例说明了如何在Java Swing环境下创建并更新文本框显示,管理数据存储和运算状态。
6783

被折叠的 条评论
为什么被折叠?



