版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z功能举例:源程序如下:importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Dimension;importjava.awt.Font;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.te*t.DecimalFormat;importjava*.swing.BorderFactory;importjava*.swing.ButtonGroup;importjava*.swing.utton;importjava*.swing.JCheckBo*MenuItem;importjava*.swing.JFrame;importjava*.swing.JMenu;importjava*.swing.JMenuBar;importjava*.swing.JMenuItem;importjava*.swing.JPanel;importjava*.swing.JRadioButtonMenuItem;importjava*.swing.JTe*tField;publicclassCalucatore*tendsJFrame{privateJTe*tFieldtf;privateJPanelpanel1,panel2,panel3,panel4;privateJMenuBarmyBar;privateJMenumenu1,menu2,menu3;privateJMenuItemeditItem1,editItem2,help1,help2,help3;privateJRadioButtonMenuItemseeItem1,seeItem2;//单项选择框privateJCheckBo*MenuItemseeItem3;//复选框privateButtonGroupbgb;privateStringback;privatebooleanIfResult=true,flag=false;privateStringoper="=";privatedoubleresult=0;privateNumnumActionListener;privateDecimalFormatdf;publicCalucator(){super("科学计算器");//设置标题栏df=newDecimalFormat("*.****");//保存四位小数this.setLayout(newBorderLayout(10,5));panel1=newJPanel(newGridLayout(1,3,10,10));panel2=newJPanel(newGridLayout(5,6,5,5));//5行6列panel3=newJPanel(newGridLayout(5,1,5,5));panel4=newJPanel(newBorderLayout(5,5));/***菜单栏*/myBar=newJMenuBar();menu1=newJMenu("编辑(E)");menu2=newJMenu("查看(V)");menu3=newJMenu("帮助(H)");menu1.setFont(newFont("宋体",Font.PLAIN,12));menu2.setFont(newFont("宋体",Font.PLAIN,12));menu3.setFont(newFont("宋体",Font.PLAIN,12));/***编辑栏*/editItem1=newJMenuItem("复制(C)Ctrl+C");editItem2=newJMenuItem("粘贴(P)Ctrl+V");editItem1.setFont(newFont("宋体",Font.PLAIN,12));editItem2.setFont(newFont("宋体",Font.PLAIN,12));/***查看栏*/seeItem1=newJRadioButtonMenuItem("科学型(T)");seeItem2=newJRadioButtonMenuItem("标准型(S)");seeItem3=newJCheckBo*MenuItem("数字分组(I)");seeItem1.setFont(newFont("宋体",Font.PLAIN,12));seeItem2.setFont(newFont("宋体",Font.PLAIN,12));seeItem3.setFont(newFont("宋体",Font.PLAIN,12));/***帮助栏*/help1=newJMenuItem("帮助主题(H)");help2=newJMenuItem("关于计算器(A)");help1.setFont(newFont("宋体",Font.PLAIN,12));help2.setFont(newFont("宋体",Font.PLAIN,12));bgb=newButtonGroup();//选项组menu1.add(editItem1);menu1.add(editItem2);menu2.add(seeItem1);menu2.add(seeItem2);menu2.addSeparator();//添加一条分割线menu2.add(seeItem3);menu3.add(help1);menu3.addSeparator();//添加一条分割线menu3.add(help2);myBar.add(menu1);myBar.add(menu2);myBar.add(menu3);this.setJMenuBar(myBar);numActionListener=newNum();//实现数字监听/***文本域,即为计算器的屏幕显示区域*/tf=newJTe*tField();tf.setEditable(false);//文本区域不可编辑tf.setBackground(Color.white);//文本区域的背风光tf.setHorizontalAlignment(JTe*tField.RIGHT);//文字右对齐tf.setTe*t("0");tf.setBorder(BorderFactory.createLoweredBevelBorder());init();//对计算器进展初始化 }/***初始化操作*添加按钮*/privatevoidinit(){addButton(panel1,"Backspace",newClear(),Color.red);addButton(panel1,"CE",newClear(),Color.red);addButton(panel1,"C",newClear(),Color.red);addButton(panel2,"1/*",newSigns(),Color.magenta);addButton(panel2,"log",newSigns(),Color.magenta);addButton(panel2,"7",numActionListener,Color.blue);addButton(panel2,"8",numActionListener,Color.blue);addButton(panel2,"9",numActionListener,Color.blue);addButton(panel2,"÷",newSigns(),Color.red);addButton(panel2,"n!",newSigns(),Color.magenta);addButton(panel2,"sqrt",newSigns(),Color.magenta);addButton(panel2,"4",numActionListener,Color.blue);addButton(panel2,"5",numActionListener,Color.blue);addButton(panel2,"6",numActionListener,Color.blue);addButton(panel2,"×",newSigns(),Color.red);addButton(panel2,"sin",newSigns(),Color.magenta);addButton(panel2,"*^2",newSigns(),Color.magenta);addButton(panel2,"1",numActionListener,Color.blue);addButton(panel2,"2",numActionListener,Color.blue);addButton(panel2,"3",numActionListener,Color.blue);addButton(panel2,"-",newSigns(),Color.red);addButton(panel2,"cos",newSigns(),Color.magenta);addButton(panel2,"*^3",newSigns(),Color.magenta);addButton(panel2,"0",numActionListener,Color.blue);addButton(panel2,"-/+",newClear(),Color.blue);addButton(panel2,".",newDot(),Color.blue);addButton(panel2,"+",newSigns(),Color.red);addButton(panel2,"tan",newSigns(),Color.magenta);addButton(panel2,"%",newSigns(),Color.magenta);addButton(panel2,"π",numActionListener,Color.orange);addButton(panel2,"e",numActionListener,Color.orange);addButton(panel2,"′″",newSigns(),Color.orange);addButton(panel2,"=",newSigns(),Color.red);uttonbtns=newutton("计算器");btns.setBorder(BorderFactory.createLoweredBevelBorder());btns.setEnabled(false);//按钮不可操作btns.setPreferredSize(newDimension(20,20));panel3.add(btns);//参加按钮addButton(panel3,"MC",null,Color.red);addButton(panel3,"MR",null,Color.red);addButton(panel3,"MS",null,Color.red);addButton(panel3,"M+",null,Color.red);panel4.add(panel1,BorderLayout.NORTH);panel4.add(panel2,BorderLayout.CENTER);this.add(tf,BorderLayout.NORTH);this.add(panel3,BorderLayout.WEST);this.add(panel4);pack();this.setResizable(false);//窗口不可改变大小this.setLocation(300,200);this.setDefaultCloseOperation(JFrame.E*IT_ON_CLOSE); }/***统一设置按钮的的使用方式*parampanel*paramname*paramaction*paramcolor*/privatevoidaddButton(JPanelpanel,Stringname,ActionListeneraction,Colorcolor){uttonbt=newutton(name);panel.add(bt);//在面板上增加按钮bt.setForeground(color);//设置前景〔字体〕颜色bt.addActionListener(action);//增加监听事件 }/***计算器的根底操作〔+-×÷〕*param**/privatevoidgetResult(double*){if(oper=="+"){result+=*;}elseif(oper=="-"){result-=*;}elseif(oper=="×"){result*=*;}elseif(oper=="÷"){result/=*;}elseif(oper=="="){result=*;}tf.setTe*t(df.format(result)); }/***运算符号的事件监听*/classSignsimplementsActionListener{publicvoidactionPerformed(ActionEvente){/**用ActionEvent对象的getActionmand()方法*取得与引发事件对象相关的字符串*/Stringstr=e.getActionmand();/*sqrt求平方根*/if(str.equals("sqrt")){doublei=Double.parseDouble(tf.getTe*t());if(i>=0){/**String.valueOf()转换为字符串*df.format()按要求保存四位小数*Math.sqrt()求算数平方根*/tf.setTe*t(String.valueOf(df.format(Math.sqrt(i)))); }else{tf.setTe*t("负数不能开平方根"); } }/*log求常用对数*/elseif(str.equals("log")){doublei=Double.parseDouble(tf.getTe*t());if(i>0){tf.setTe*t(String.valueOf(df.format(Math.log(i)))); }else{tf.setTe*t("负数不能求对数"); } }/*%求百分比*/elseif(str.equals("%")){tf.setTe*t(df.format(Double.parseDouble(tf.getTe*t())/100)); }/*1/*求倒数*/elseif(str.equals("1/*")){if(Double.parseDouble(tf.getTe*t())==0){tf.setTe*t("除数不能为零"); }else{tf.setTe*t(df.format(1/Double.parseDouble(tf.getTe*t()))); } }/*sin求正弦函数*/elseif(str.equals("sin")){doublei=Double.parseDouble(tf.getTe*t());tf.setTe*t(String.valueOf(df.format(Math.sin(i)))); }/*cos求余弦函数*/elseif(str.equals("cos")){doublei=Double.parseDouble(tf.getTe*t());tf.setTe*t(String.valueOf(df.format(Math.cos(i)))); }/*tan求正切函数*/elseif(str.equals("tan")){doublei=Double.parseDouble(tf.getTe*t());tf.setTe*t(String.valueOf(df.format(Math.tan(i)))); }/*n!求阶乘*/elseif(str.equals("n!")){doublei=Double.parseDouble(tf.getTe*t());if((i%2==0)||(i%2==1))//判断为整数放进展阶乘操作 {intj=(int)i;//强制类型转换intresult=1;for(intk=1;k<=j;k++)result*=k;tf.setTe*t(String.valueOf(result)); }else {tf.setTe*t("无法进展阶乘"); } }/**^2求平方*/elseif(str.equals("*^2")){doublei=Double.parseDouble(tf.getTe*t());tf.setTe*t(String.valueOf(df.format(i*i))); }/**^3求立方*/elseif(str.equals("*^3")){doublei=Double.parseDouble(tf.getTe*t());tf.setTe*t(String.valueOf(df.format(i*i*i))); }/*′″角度转换*//***将角度值转换成弧度值,方便三角函数的计算*/elseif(str.equals("′″")){doublei=Double.parseDouble(tf.getTe*t());tf.setTe*t(String.valueOf(i/180*Math.PI)); }else{if(flag){IfResult=false; }if(IfResult){oper=str; }else{getResult(Double.parseDouble(tf.getTe*t()));oper=str;IfResult=true; } } } }/***去除按钮的事件监听*/classClearimplementsActionListener{publicvoidactionPerformed(ActionEvente){/**用ActionEvent对象的getActionmand()方法*取得与引发事件对象相关的字符串*/Stringstr=e.getActionmand();if(str=="C"){tf.setTe*t("0");IfResult=true;result=0; }elseif(str=="-/+"){doublei=0-Double.parseDouble(tf.getTe*t().trim());tf.setTe*t(df.format(i)); }elseif(str=="Backspace"){if(Double.parseDouble(tf.getTe*t())>0){if(tf.getTe*t().length()>1){tf.setTe*t(tf.getTe*t().substring(0,tf.getTe*t().length()-1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025河南驻马店市直公益性岗位招聘16人参考考试试题及答案解析
- 郑州大学炼焦煤资源绿色开发全国重点实验室面向高校2025届毕业生招聘非事业编制(劳务派遣)工作人员1人参考考试试题及答案解析
- 2025广东惠州市第一妇幼保健院招聘第二批员额制卫生专业技术人员13人备考考试试题及答案解析
- 2026中国金融出版社有限公司校园招聘4人备考笔试试题及答案解析
- 2026年潍坊市教育局所属学校急需紧缺人才附部属公费师范生公开招聘(22名)参考笔试题库附答案解析
- 2025福建厦门市集美区实验幼儿园非在编教辅招聘2人备考笔试试题及答案解析
- 2025年莆田市城厢区社会治理网格化中心招聘若干人参考考试试题及答案解析
- 网卡代理合同范本
- 网架房安装协议书
- 耕地换耕地协议书
- 美恩电子新材料有限公司86万吨-年电子级化学品项目环评资料环境影响
- 2025至2030年中国裂隙灯显微镜行业市场调查研究及未来趋势预测报告
- 2025春季学期国开电大本科《管理英语4》一平台机考真题及答案(第十四套)
- 冠心病试题及答案选择题
- 阿奇霉素试题及答案
- 协会财务支出管理制度
- TSG D7004-2010 压力管道定期检验规则 -公用管道
- 2025+CSCO肿瘤治疗所致血小板减少症(CTIT)诊疗指南解读课件
- 2025房屋租赁合同范本(版)
- 山东省烟台市芝罘区(五四制)2024-2025学年九年级上学期期末考试英语试题
- 广东省工程勘察设计服务成本取费导则(2024版)
评论
0/150
提交评论