ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:159.79KB ,
资源ID:10241246      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10241246.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java实验四GUI简易计算器.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

Java实验四GUI简易计算器.docx

1、Java实验四GUI简易计算器实验四 GUI图形界面设计一 实验要求 1、掌握Awt与Swing的区别与联系;掌握Swing常用图像组件的使用;掌握主要的布局管理器的使用方法;2、了解事件处理机制;掌握Swing常用图像组件的使用;掌握固定菜单和弹出式菜单的创建和使用;二 实验内容1、设计并实现一个类似于windows操作系统附件中自带的计算器的一款简单的计算器,要求界面美观,设计合理;带有常用的菜单并实现其功能;能完成加、减、乘、除等简单的计算,在下面写出其核心代码。(1)源代码package com.cal;import java。awt。*;import javax。swing。*;im

2、port java。awt。event。;import java。util。Stack;import java.awt。GridLayout;class Cal extends JFrame implements ActionListener JTextField show=null; JPanel jp1,jp2; JButton c,jia,jian,cheng,chu,equ,point; /按钮 清空 加,减,乘 ,除,等号,小数点 JButton b = new JButton10;/按钮数组 0-9 /栈控制标记位 int flag=1; /结果标记位 int reflag=0;

3、public Cal() /创建组件 jp1=new JPanel(); jp2=new JPanel(); show=new JTextField(45); show.setFont(new Font(”宋体,Font。PLAIN,16); jia=new JButton(” + ); jian=new JButton(” ”); cheng=new JButton(” * ”); chu=new JButton(” / ); equ=new JButton(” = ”); equ。setForeground(Color.RED); equ.setBackground(Color.GREEN

4、); point=new JButton( 。 ”); b0=new JButton(”0); b1=new JButton(1”); b2=new JButton(”2); b3=new JButton(”3”); b4=new JButton(4”); b5=new JButton(5”); b6=new JButton(”6”); b7=new JButton(”7”); b8=new JButton(8); b9=new JButton(”9”); c=new JButton(” C ”); c。setForeground(Color.RED); c。setBackground(Col

5、or.YELLOW); c。setFont(new Font(黑体,Font.PLAIN,15); /添加组件 jp1。add(show); jp1。add(c); / show.setEditable(false); jp2。add(b7); jp2.add(b8); jp2。add(b9); jp2.add(jia); jp2。add(b4); jp2.add(b5); jp2.add(b6); jp2.add(jian); jp2。add(b1); jp2。add(b2); jp2.add(b3); jp2.add(cheng); jp2.add(equ); jp2.add(b0); j

6、p2。add(point); jp2。add(chu); jp2.setLayout(new GridLayout(4,4,3,3); /注册监听 show.addActionListener(this); jia.addActionListener(this); jian。addActionListener(this); cheng.addActionListener(this); chu.addActionListener(this); equ。addActionListener(this); point.addActionListener(this); c。addActionListen

7、er(this); for(int i=0;i SNum=new Stack(); StackObject SOp=new Stack(); SNum。removeAllElements(); SOp。removeAllElements(); String Snum=”; double Inum=0; char a1 = st.charAt(st.length()1)); char b1 = st。charAt(st.length()-2)); for(int i =0;ist.length();i+) char c = st。charAt(i); if(c=+|c=) Inum=Double

8、。parseDouble(Snum); if(SOp。empty()) SNum。push(Inum); else switch(char)SOp。peek()) case +: SNum。push((double)SNum.pop()+Inum); SOp。pop(); break; case -: SNum。push((double)SNum。pop()Inum); SOp。pop(); break; case : SNum。push((double)SNum。pop()Inum); SOp.pop(); break; case /: SNum.push(double)SNum.pop()

9、/Inum); SOp.pop(); break; /将符号压入栈 switch(c) case +: SOp。push(+); break; case -: SOp。push(-); break; Snum=”; else if(c=*c=/) Inum=Double。parseDouble(Snum); if(SOp.empty() SNum。push(Inum); else if(a1=0 & b1=.) /如果是整数,则去掉后面的小数点和0 show。setText(String。valueOf(Math.round(Inum)); switch(char)SOp。peek() cas

10、e *: SNum。push((double)SNum.pop()*Inum); SOp.pop(); break; case /: SNum.push((double)SNum。pop()Inum); SOp。pop(); break; default: SNum.push(Inum); break; /将符号压入符号栈 switch (c) case : SOp。push(); break; case /: SOp。push(/); break; Snum=”; else Snum=Snum+c; SNum.push(Double。parseDouble(Snum); /将表达式最后一个数

11、入栈 double a,b; while(!SOp.empty()) a=(double)SNum。pop(); b=(double)SNum.pop(); switch((char)SOp。pop() case +: SNum。push(b+a); break; case -: SNum。push(ba); break; case *: SNum.push(b*a); break; case /: SNum.push(b/a); break; return (double)SNum.pop(); public class Calculter public static void main(S

12、tring args) / TODO 自动生成的方法存根 Cal cal=new Cal();(2)截图加乘清除小数三 实验内容中遇到的问题、解决方法和体会。遇到的问题:1.String 如何转为 double类型2.栈的使用 3.符号放到最后出错4.连续输入小数点出错5.如何实现小数的运算6. Exception in thread ”AWTEventQueue-0” java.lang.StringIndexOutOfBoundsException: String index out of range: 1java。lang。NumberFormatException解决方法:1。 Inu

13、m=Double。parseDouble(Snum);2。查询Java开发文档解决.3.输出错误信息4。输出错误信息5。 char a1 = st。charAt(st。length()1)); char b1 = st。charAt(st.length()-2));if(a1=0 & b1=。) show。setText(String.valueOf(Math.round(Inum))); 6.不直接按等于号体会这个实验是一个很综合的实验,需要用到GUI,事件监听,和栈 涉及到很多的知识,自己也有很多不会的内容,做这个实验很考验自己的耐性,和信心,以及查阅信息的能力。但最总的结果是好的,做出来很开心。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2