java计算器-.pdf

上传人:索**** 文档编号:76260470 上传时间:2023-03-08 格式:PDF 页数:9 大小:13.38KB
返回 下载 相关 举报
java计算器-.pdf_第1页
第1页 / 共9页
java计算器-.pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《java计算器-.pdf》由会员分享,可在线阅读,更多相关《java计算器-.pdf(9页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、package com.jack.test;/*b0=Backspace;b1=CE;b2=C;b3=MC;b4=MR;b5=MS;b6=M+*b7=7;b8=8;b9=9;b10=/b11=sqrt;b12=4;b13=5;b14=6*b15=*;b16=%;b17=1;b18=2;b19=3;b20=-;b21=1/x;*b22=0;b23=+/-;b24=.;b25=+;b26=;*/import java.awt.*;import java.awt.event.*;import javax.swing.*;publicclass CounterL extends Frame /声明三个

2、面板的布局 GridLayout gl1,gl2,gl3;Panel p0,p1,p2,p3;JTextField tf1;TextField tf2;Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26;StringBuffer str;/显示屏所显示的字符串double x,y;/x和 y 都是运算数int z;/Z表示单击了那一个运算符.0 表示+,1表示-,2表示*,3 表示/staticdouble m;/记忆的数字public

3、CounterL()/菜单栏 MenuBar mb=new MenuBar();setMenuBar(mb);Menu m1=new Menu(编辑);MenuItem copy=new MenuItem(复制(C)Ctrl+C);MenuItem paste=new MenuItem(粘贴(P)Ctrl+V);MenuItem exit=new MenuItem(退出(E)Ctrl+E);m 1.add(copy);m 1.add(paste);m 1.add(exit);Menu m2=new Menu(查看);MenuItem standard=new MenuItem(标准型(S);M

4、enuItem science=new MenuItem(科学型(S);MenuItem arith=new MenuItem(数学分组(A);m 2.add(standard);m 2.add(science);m 2.add(arith);Menu m3=new Menu(帮助);MenuItem help=new MenuItem(主题帮助 );MenuItem aboutCounter=new MenuItem(关于计算器);m 3.add(help);m 3.add(aboutCounter);m b.add(m1);m b.add(m2);m b.add(m3);/实例化三个面板的

5、布局/*行,列,水平间距,垂直间距*/gl1=new GridLayout(1,5,12,1);gl2=new GridLayout(4,1,5,5);gl3=new GridLayout(4,5,5,5);/文本框 tf1=new JTextField(0.,27);tf1.setHorizontalAlignment(JTextField.RIGHT);tf1.setForeground(Color.blue);tf1.setEditable(false);/tf2显示记忆的索引值 tf2=new TextField(2);tf2.setEditable(false);/实例化所有按钮、设

6、置其前景色并注册监听器 b0=new Button(Backspace);b0.setForeground(Color.red);b0.addActionListener(new Bt();b1=new Button(CE);b1.setForeground(Color.red);b1.addActionListener(new Bt();b2=new Button(C);b2.setForeground(Color.red);b2.addActionListener(new Bt();b3=new Button(MC);b3.setForeground(Color.red);b3.addAc

7、tionListener(new Bt();b4=new Button(MR);b4.setForeground(Color.red);b4.addActionListener(new Bt();b5=new Button(MS);b5.setForeground(Color.red);b5.addActionListener(new Bt();b6=new Button(M+);b6.setForeground(Color.red);b6.addActionListener(new Bt();b7=new Button(7);b7.setForeground(Color.blue);b7.a

8、ddActionListener(new Bt();b8=new Button(8);b8.setForeground(Color.blue);b8.addActionListener(new Bt();b9=new Button(9);b9.setForeground(Color.blue);b9.addActionListener(new Bt();b10=new Button(/);b10.setForeground(Color.red);b10.addActionListener(new Bt();b11=new Button(sqrt);b11.setForeground(Color

9、.blue);b11.addActionListener(new Bt();b12=new Button(4);b12.setForeground(Color.blue);b12.addActionListener(new Bt();b13=new Button(5);b13.setForeground(Color.blue);b13.addActionListener(new Bt();b14=new Button(6);b14.setForeground(Color.blue);b14.addActionListener(new Bt();b15=new Button(*);b15.set

10、Foreground(Color.red);b15.addActionListener(new Bt();b16=new Button(%);b16.setForeground(Color.blue);b16.addActionListener(new Bt();b17=new Button(1);b17.setForeground(Color.blue);b17.addActionListener(new Bt();b18=new Button(2);b18.setForeground(Color.blue);b18.addActionListener(new Bt();b19=new Bu

11、tton(3);b19.setForeground(Color.blue);b19.addActionListener(new Bt();b20=new Button(-);b20.setForeground(Color.red);b20.addActionListener(new Bt();b21=new Button(1/X);b21.setForeground(Color.blue);b21.addActionListener(new Bt();b22=new Button(0);b22.setForeground(Color.blue);b22.addActionListener(ne

12、w Bt();b23=new Button(+/-);b23.setForeground(Color.blue);b23.addActionListener(new Bt();b24=new Button(.);b24.setForeground(Color.blue);b24.addActionListener(new Bt();b25=new Button(+);b25.setForeground(Color.red);b25.addActionListener(new Bt();b26=new Button(=);b26.setForeground(Color.red);b26.addA

13、ctionListener(new Bt();/实例化四个面板 p0=new Panel();p1=new Panel();p2=new Panel();p3=new Panel();/创建一个空字符串缓冲区 str=new StringBuffer();/添加面板p0 中的组件和设置其在框架中的位置和大小 p0.add(tf1);p0.setBounds(10,50,300,40);/添加面板p1 中的组件和设置其在框架中的位置和大小 p1.setLayout(gl1);p1.add(tf2);p1.add(b0);p1.add(b1);p1.add(b2);p1.setBounds(10,

14、90,300,25);/添加面板p2 中的组件并设置其的框架中的位置和大小 p2.setLayout(gl2);p2.add(b3);p2.add(b4);p2.add(b5);p2.add(b6);p2.setBounds(10,120,40,150);/添加面板p3 中的组件并设置其在框架中的位置和大小 p3.setLayout(gl3);/设置 p3 的布局 p3.add(b7);p3.add(b8);p3.add(b9);p3.add(b10);p3.add(b11);p3.add(b12);p3.add(b13);p3.add(b14);p3.add(b15);p3.add(b16)

15、;p3.add(b17);p3.add(b18);p3.add(b19);p3.add(b20);p3.add(b21);p3.add(b22);p3.add(b23);p3.add(b24);p3.add(b25);p3.add(b26);p3.setBounds(60,120,250,150);/设置框架中的布局为空布局并添加4 个面板 setLayout(null);add(p0);add(p1);add(p2);add(p3);setTitle(计算器);/设置标题 setResizable(false);/禁止调整框架的大小/匿名类关闭窗口 addWindowListener(new

16、 WindowAdapter()publicvoid windowClosing(WindowEvent e1)System.exit(0););setBackground(Color.lightGray);setBounds(100,100,320,280);setVisible(true);/构造器/构造监听器class Bt implements ActionListener publicvoid actionPerformed(ActionEvent e2)try if(e2.getSource()=b1)/选择 CE 清零 tf1.setText(0);/把显示屏清零 str.set

17、Length(0);/清空字符串缓冲区以准备接收新的输入运算数 elseif(e2.getSource()=b2)/选择 C 清零 tf1.setText(0);/把显示屏清零 str.setLength(0);elseif(e2.getSource()=b23)/单击+/-选择输入的运算数是正数还是负数 x=Double.parseDouble(tf1.getText().trim();tf1.setText(+(-x);elseif(e2.getSource()=b25)/单击加号按钮获得x 的值和 z 的值并清空y 的值 x=Double.parseDouble(tf1.getText(

18、).trim();str.setLength(0);/清 空 缓 冲 区 以 便 接 收 新 的 另 一 个 运 算数 y=0d;z=0;elseif(e2.getSource()=b20)/单击减号按钮获得x 的值和 z 的值并清空y 的值 x=Double.parseDouble(tf1.getText().trim();str.setLength(0);y=0d;z=1;elseif(e2.getSource()=b15)/单击乘号按钮获得x 的值和 z 的值并清空y 的值 x=Double.parseDouble(tf1.getText().trim();str.setLength(0

19、);y=0d;z=2;elseif(e2.getSource()=b10)/单击除号按钮获得x 的值和 z 的值并空y 的值 x=Double.parseDouble(tf1.getText().trim();str.setLength(0);y=0d;z=3;elseif(e2.getSource()=b26)/单击等号按钮输出计算结果 str.setLength(0);switch(z)case 0:tf1.setText(+(x+y);break;case 1:tf1.setText(+(x-y);break;case 2:tf1.setText(+(x*y);break;case 3:

20、tf1.setText(+(x/y);break;elseif(e2.getSource()=b24)/单击.按钮输入小数if(tf1.getText().trim().indexOf(.)!=-1)/判断字符串中是否已经包含了小数点/do nothing else /如果没有小数点if(tf1.getText().trim().equals(0)/如果初时显示为0 str.setLength(0);tf1.setText(str.append(0+e2.getActionCommand().toString();elseif(tf1.getText().trim().equals()/如果初

21、时显示为空则不做任何操作 else tf1.setText(str.append(e2.getActionCommand().toString();y=0d;elseif(e2.getSource()=b11)/求平方根 x=Double.parseDouble(tf1.getText().trim();tf1.setText(数字格式异常);if(x 0)tf1.setText(负数没有平方根);else tf1.setText(+Math.sqrt(x);str.setLength(0);y=0d;elseif(e2.getSource()=b16)/单击了%按钮 x=Double.par

22、seDouble(tf1.getText().trim();tf1.setText(+(0.01*x);str.setLength(0);y=0d;elseif(e2.getSource()=b21)/单击了 1/X按钮 x=Double.parseDouble(tf1.getText().trim();if(x=0)tf1.setText(除数不能为零);else tf1.setText(+(1/x);str.setLength(0);y=0d;elseif(e2.getSource()=b3)/MC为清除内存 m=0d;tf2.setText();str.setLength(0);else

23、if(e2.getSource()=b4)/MR为 重 新 调 用 存 储 的 数据if(tf2.getText().trim()!=)/有记忆数字 tf1.setText(+m);elseif(e2.getSource()=b5)/MS为存储显示的数据 m=Double.parseDouble(tf1.getText().trim();tf2.setText(M);tf1.setText(0);str.setLength(0);elseif(e2.getSource()=b6)/M+为将显示的数字与已经存储的数据相加要查看新的数字单击MR m=m+Double.parseDouble(tf1

24、.getText().trim();else /选择的是其他的按钮if(e2.getSource()=b22)/如果选择的是 0 这个数字键if(tf1.getText().trim().equals(0)/如果显示屏显示的为零不做操作 else tf1.setText(str.append(e2.getActionCommand().toString();y=Double.parseDouble(tf1.getText().trim();elseif(e2.getSource()=b0)/选择的是“BackSpace”按钮if(!tf1.getText().trim().equals(0)/

25、如果显示屏显示的不是零if(str.length()!=1)tf1.setText(str.delete(str.length()-1,str.length().toString();/可能抛出字符串越界异常 else tf1.setText(0);str.setLength(0);y=Double.parseDouble(tf1.getText().trim();else /其他的数字键 tf1.setText(str.append(e2.getActionCommand().toString();y=Double.parseDouble(tf1.getText().trim();catch(NumberFormatException e)tf1.setText(数字格式异常);catch(StringIndexOutOfBoundsException e)tf1.setText(字符串索引越界);publicstaticvoid m ain(String args)new CounterL();/m ain /class

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 实施方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com