下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44434-2024空间环境流星雷达技术要求
- GB/T 18916.15-2024工业用水定额第15部分:白酒
- 个体化医学诊疗行业营销策略方案
- 化妆用皮肤调理霜产品供应链分析
- 光通信设备产品供应链分析
- 婴儿尿裤产业链招商引资的调研报告
- 蔬菜盘商业机会挖掘与战略布局策略研究报告
- 玻璃罐细分市场深度研究报告
- 市政供水处理行业相关项目经营管理报告
- 医用柔性内窥镜产业链招商引资的调研报告
- 初中语文大单元汇报课件1
- MOOC 科技英语写作-西安电子科技大学 中国大学慕课答案
- 24春国家开放大学《离散数学》大作业参考答案
- 鲨鱼知识课件
- 2023-2024年天原杯全国初中学生化学竞赛复赛试题(含答案)
- (高清版)TDT 1047-2016 土地整治重大项目实施方案编制规程
- 自然教育行业的行业分析
- 《肿瘤学概论概论》课件
- 探析机械电子工程行业现状分析及未来发展趋势
- 机电一体化生涯发展报告
- 2024年浙江高压电工证考试题库app高压电工复审模拟考试题库(全国通用)
评论
0/150
提交评论