Java实验报告Calculator-计算器_第1页
Java实验报告Calculator-计算器_第2页
Java实验报告Calculator-计算器_第3页
Java实验报告Calculator-计算器_第4页
Java实验报告Calculator-计算器_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE附页PAGEPAGE5计算机科学系实验报告(首页)课程名称:Java2程序设计班级:03计(2)班实验名称:计算器指导教师:刘*姓名:J学号:13日期:2005-10-9一:实验任务和目的:图形界面设计熟悉java.awt包中的组件,掌握图形界面设计方法,理解委托事件处理模型。二:实验题意和要求:设计并实现Windows系统中的“计算器”的窗口及功能设计图形界面,窗口上添加各种组件及菜单,并处理组件及菜单的事件监听程序。实现多种运算,保证运算正确性。网格布局dispMain:1*2

嵌套网格:

dispLeft:4*3disp网格布局dispMain:1*2

嵌套网格:

dispLeft:4*3dispRight:4*2dispLeftdispRight网格布局dispTop:1*4界面布局:主框架:list,网格布局如图(采用Panel容器),计算结果显示文本行:show(JTextField),关于对话框:about(Dialog),据自己掌握的知识,发觉TextField里面的字符无法靠右显示。查阅资料后,发现JTextField可以,它是属于javax.swing包的,和TextField几乎一样,但是其具有的功能属性更丰富。关于运算:进行运算时,必须先把文本行的字符串类型(String)的数值转换成数字型(Double)才能进行。四:应用主程序清单://packageCalculator;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassCalculatorextendsWindowAdapterimplementsActionListener{ Framelist; JTextFieldshow; Buttonbc,c,ce,ab,jia,jian,cheng,chu,equ,point,sqrt,ds,bfh,zf;//按钮退格,清空,复位,关于,加,减,乘,除,等号,小数点,2次方根,倒数,百分号,正负号 Buttonb[]=newButton[10];//按钮数组,数字键0~9 doublesum=0,getValue; inti=0,j=0,p=0,l,action; Dialogabout; finalintslength=30;//设置结果显示有效长度 publicvoiddisp(){ list=newFrame("Calculator"); list.setSize(250,190); list.setLocation(320,250); list.setBackground(Color.LIGHT_GRAY); list.setLayout(newFlowLayout(FlowLayout.CENTER)); list.setResizable(false); show=newJTextField(20); show.setText("0"); show.setHorizontalAlignment(SwingConstants.RIGHT); show.setEditable(false); list.add(show); PaneldispTop=newPanel(); list.add(dispTop); dispTop.setLayout(newGridLayout(1,4,3,3)); bc=newButton("Back"); bc.setForeground(Color.BLUE); dispTop.add(bc); ce=newButton("CE"); ce.setForeground(Color.BLUE); dispTop.add(ce); c=newButton("C"); c.setForeground(Color.BLUE); dispTop.add(c); ab=newButton("About"); ab.setForeground(Color.BLUE); dispTop.add(ab); about=newDialog(list,"AboutCalculator",true); Labelct=newLabel("CopyRight(c)HZU03J2Jastby",1); ct.setForeground(Color.RED); about.add(ct,"Center"); about.setSize(200,100); about.setLocation(500,300); about.addWindowListener(this); PaneldispMain=newPanel(); list.add(dispMain); dispMain.setLayout(newGridLayout(1,2,10,10)); PaneldispLeft=newPanel(); dispMain.add(dispLeft); dispLeft.setLayout(newGridLayout(4,3,3,3)); PaneldispRight=newPanel(); dispMain.add(dispRight); dispRight.setLayout(newGridLayout(4,2,3,3)); for(l=9;l>=0;l--){ b[l]=newButton(String.valueOf(l)); dispLeft.add(b[l]); b[l].addActionListener(this); } jia=newButton("+"); jia.setForeground(Color.RED); jian=newButton("-"); jian.setForeground(Color.RED); cheng=newButton("*"); cheng.setForeground(Color.RED); chu=newButton("/"); chu.setForeground(Color.RED); equ=newButton("="); equ.setForeground(Color.RED); point=newButton("."); zf=newButton("+/-"); sqrt=newButton("sqrt"); bfh=newButton("%"); ds=newButton("1/x"); dispRight.add(chu); dispRight.add(sqrt); dispRight.add(cheng); dispRight.add(bfh); dispRight.add(jian); dispRight.add(ds); dispRight.add(jia); dispRight.add(equ); dispLeft.add(zf); dispLeft.add(point); bc.addActionListener(this); ce.addActionListener(this); c.addActionListener(this); ab.addActionListener(this); jia.addActionListener(this); jian.addActionListener(this); cheng.addActionListener(this); chu.addActionListener(this); equ.addActionListener(this); point.addActionListener(this); zf.addActionListener(this); sqrt.addActionListener(this); bfh.addActionListener(this); ds.addActionListener(this); list.addWindowListener(this); list.setVisible(true); } publicvoidactionPerformed(ActionEvente){ getValue=Double.valueOf(show.getText()).doubleValue(); //getValue=Double.valueOf(show.getText());//如果该行出错,则在后面加上.doubleValue();属版本兼容问题 if(e.getSource()==jia){//加运算,可连加 if(j==0){ sum=getValue; } elseif(action==1){ sum+=getValue; } setSum(); j++;p=0;i=0;action=1; } elseif(e.getSource()==jian){//减运算,可连减 if(j==0){ sum=getValue; } elseif(action==2){ sum-=getValue; } setSum(); j++;p=0;i=0;action=2; } elseif(e.getSource()==cheng){//乘运算,可连乘 if(j==0){ sum=getValue; } elseif(action==3){ sum*=getValue; } setSum(); j++;p=0;i=0;action=3; } elseif(e.getSource()==chu){//除运算,可连除 if(j==0) sum=getValue; elseif(action==4){ sum/=getValue; } setSum(); j++;p=0;i=0;action=4; } elseif(e.getSource()==equ){//等号,运算最后一个操作数 switch(action){ case1:show.setText(String.valueOf(sum+=getValue));break; case2:show.setText(String.valueOf(sum-=getValue));break; case3:show.setText(String.valueOf(sum*=getValue));break; case4:show.setText(String.valueOf(sum/=getValue));break; } setSum(); i=0;j=0;action=0; } elseif(e.getSource()==point){//小数点,只能按一个小数点 if(p==0) show.setText(show.getText()+e.getActionCommand()); p=1; } elseif(e.getSource()==c||e.getSource()==ce){//清空与复位 i=0;j=0;p=0;sum=0;action=0; show.setText("0"); } elseif(e.getSource()==bc){//退格 Strings=show.getText(); if(s.length()>1){ show.setText(""); for(l=0;l<s.length()-1;l++){//按一下,删除尾部一位 chara=s.charAt(l); show.setText(show.getText()+a); } } else show.setText("0"); } elseif(e.getSource()==ab){//关于,弹出对话框 about.setVisible(true); } elseif(e.getSource()==sqrt){//开2次方根 sum=Math.sqrt(getValue); setSum(); j++; } elseif(e.getSource()==ds){//求倒数 sum=1/getValue; setSum(); j++; } elseif(e.getSource()==bfh){//百分号 sum=getValue/100; setSum(); j++; } elseif(e.getSource()==zf){//正负号切换,正号不显示 Strings=show.getText(); chara=s.charAt(0); if(a=='-'){ show.setText(""); for(l=1;l<s.length();l++){//去掉负号 show.setText(show.getText()+s.charAt(l)); } } elseif(getValue!=0){//加上负号 show.setText("-"+s); } } for(l=0;l<10;l++){//0~9数字键触发 if(e.getSource()==b[l]){ if(i==0) show.setText(""); Strings=show.getText(); if(s.length()<slength) show.setText(show.getText()+e.getActionC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论