JButtonbutton=newJButton(str[i]);
button.addActionListener(this);
pan2.add(button);
}
c.add(pan2);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(500,450);
this.setVisible(true);
}
4运算符的控制和值的输入输出
publicvoidchangedUpdate(DocumentEvente){}
publicvoidinsertUpdate(DocumentEvente){
x=text.getText();//获得文本诓的内容
//System.out.println("y="+y+"x="+x);
}
publicvoidremoveUpdate(DocumentEvente){
}
publicvoidactionPerformed(ActionEvente){
Stringz=e.getActionCommand();//记录按纽上的字符
try{
if(Character.isDigit(z.charAt(0))){
text.setText(text.getText()+z);
flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;
}
elseif(z.equals("+")&&flag1){
operation="+";y=x;text.setText("");flag1=false;
}
elseif(z.equals("-")&&flag2){
operation="-";y=x;text.setText("");flag2=false;
}
elseif(z.equals("*")&&flag3){
operation="*";y=x;text.setText("");flag3=false;
}
elseif(z.equals("/")&&flag4){
operation="/";y=x;text.setText("");flag4=false;
}
elseif(z.equals("倒数")){
flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;
y=x;Doubley2=Double.parseDouble(y);doubley22=1/y2;text.setText(y22+"");
}
elseif(z.equals("+/-")){
y=x;
doubleyy=-Double.parseDouble(y);text.setText(yy+"");
flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;
}
elseif(z.equals(".")){
if(x.indexOf(".")==-1){
text.setText(x+".");
}
flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;
}
elseif(z.equals("=")){
flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;
Doubleop1=Double.parseDouble(y);
Doubleop2=Double.parseDouble(x);
if(operation.equals("+")){x=op1+op2+"";text.setText(x);}
elseif(operation.equals("-")){x=op1-op2+"";text.setText(x);}
elseif(operation.equals("*")){x=op1*op2+"";text.setText(x);}
elseif(operation.equals("/")){x=op1/op2+"";text.setText(x);}
elseif(operation.equals("%")){x=op1%op2+"";text.setText(x);}
}
elseif(z.equals("c")){
x="";text.setText("");
flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;
}
elseif(z.equals("退格")){
text.setText(x.substring(0,x.length()-1));
flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;
}
}catch(Exceptionex){x="";y="";operation="";text.setText("");}
}
6系统测试与运行
(1)界面显示
(2)输入数字“13”
(3)点击“+”后输入“14”。
(4)点击“=”,获得结果。
(5)输入数字“10”
(6)取倒数运算后,获得结果。
(7)点击“退格”,获得结果
7总结
本次课程设计到此算是告一段落了,经过这次的学习,我学到了很多东西,在此基础上更加巩固了自己对java的认识与了解。
在做本项目是时候,会遇到很多小问题,比如说,在整个运算过程中要如何确保输入的计算数据哪个是第一个计算数据的,哪个是第二个计算数据的,同时也要区分运算符,因为该计算器程序应用的都是利用字符串来完成计算的,而且不能重复输出运算符,更不能将运算符错误的存储在了第一个计算数据的数值中,也得考虑到万一不小心重复点击了运算符按钮会不会造成第一个计算数据的重新赋值等等问题,最后想到利用布尔类型来很好的控制运算符的应用!
此次课程设计让我更了解熟悉了Java中的图形用户界面和它的编程方式。
在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大。
最大的收获就是对大学学习的总结和培养了解决困难的信心和能力,使我对所学知识能够融会贯通,又不断丰富了新知识。
Java计算器设计使得我们对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高。
在接下来的时间里,我觉得我要更加努力的往深一层次的方面看齐,了解更多有关java的知识,对java有更深一步的了解,我会一步一步的走下去!
8参考文献
[1]王建华.ASPNET2.0动态网站开发技术与实践[M].北京:
电子工业出版社,2007.
[2]徐迎晓《Java语法及网络应用设计》 清华大学出版社2002
[3]戴特尔(美)《Java大学简明教程——实例程序设计》 2005
附录A:
系统核心代码
publicvoidchangedUpdate(DocumentEvente){}
publicvoidinsertUpdate(DocumentEvente){
x=text.getText();//获得文本诓的内容
//System.out.println("y="+y+"x="+x);
}
publicvoidremoveUpdate(DocumentEvente){
}
publicvoidactionPerformed(ActionEvente){
Stringz=e.getActionCommand();//记录按纽上的字符
try{
if(Character.isDigit(z.charAt(0))){
text.setText(text.getText()+z);
flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;
}
elseif(z.equals("+")&&flag1){
operation="+";y=x;text.setText("");flag1=false;
}
elseif(z.equals("-")&&flag2){
operation="-";y=x;text.setText("");flag2=false;
}
elseif(z.equals("*")&&flag3){
operation="*";y=x;text.setText("");flag3=false;
}
elseif(z.equals("/")&&flag4){
operation="/";y=x;text.setText("");flag4=false;
}
elseif(z.equals("倒数")){
flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;
y=x;Doubley2=Double.parseDouble(y);doubley22=1/y2;text.setText(y22+"");
}
elseif(z.equals("+/-")){
y=x;
doubleyy=-Double.parseDouble(y);text.setText(yy+"");
flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;
}
elseif(z.equals(".")){
if(x.indexOf(".")==-1){
text.setText(x+".");
}
flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;
}
elseif(z.equals("=")){
flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;
Doubleop1=Double.parseDouble(y);
Doubleop2=Double.parseDouble(x);
if(operation.equals("+")){x=op1+op2+"";text.setText(x);}
elseif(operation.equals("-")){x=op1-op2+"";text.setText(x);}
elseif(operation.equals("*")){x=op1*op2+"";text.setText(x);}
elseif(operation.equals("/")){x=op1/op2+"";text.setText(x);}
elseif(operation.equals("%")){x=op1%op2+"";text.setText(x);}
}
elseif(z.equals("c")){
x="";text.setText("");
flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;
}
elseif(z.equals("退格")){
text.setText(x.substring(0,x.length()-1));
flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;
}
}catch(Exceptionex){x="";y="";operation="";text.setText("");}
}