




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java 计算器程序代码以下为代码:import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Calculator extends JFrame implements ActionListener private boolean dotExist, operated, equaled; / 帮助运算的布尔变量 private double storedNumber; / 目前的结果 private char lastOperator; / 表示上一运算符 private JTextField operation; / 结果栏 private JButton dot, plus, minus, multi, div, sqrt, equal, changePN, clear; /运算符 private JButton numbers; / 数字 / 构造者 public Calculator() setTitle(Calculator); / 初始化变量 dotExist = false; / 表示当前的数是否有小数点 operated = false; / 表示任意运算符是否被按下 equaled = false; / 表示等号是否被按下 storedNumber = 0; lastOperator = ?; / 初始化窗口变量 operation = new JTextField(0); operation.setEditable(false); numbers = new JButton10; for (int i = 0; i 10; i+) numbersi = new JButton( + i); dot = new JButton(.); plus = new JButton(+); minus = new JButton(-); multi = new JButton(*); div = new JButton(/); sqrt = new JButton(); equal = new JButton(=); changePN = new JButton(); clear = new JButton(AC); / 将窗口物体放入窗口 GridBagLayout layout = new GridBagLayout(); getContentPane().setLayout(layout); addComponent(layout, operation, 0, 0, 4, 1); addComponent(layout, numbers1, 1, 0, 1, 1); addComponent(layout, numbers2, 1, 1, 1, 1); addComponent(layout, numbers3, 1, 2, 1, 1); addComponent(layout, numbers4, 2, 0, 1, 1); addComponent(layout, numbers5, 2, 1, 1, 1); addComponent(layout, numbers6, 2, 2, 1, 1); addComponent(layout, numbers7, 3, 0, 1, 1); addComponent(layout, numbers8, 3, 1, 1, 1); addComponent(layout, numbers9, 3, 2, 1, 1); addComponent(layout, dot, 4, 0, 1, 1); addComponent(layout, numbers0, 4, 1, 1, 1); addComponent(layout, sqrt, 4, 2, 1, 1); addComponent(layout, plus, 1, 3, 1, 1); addComponent(layout, minus, 2, 3, 1, 1); addComponent(layout, multi, 3, 3, 1, 1); addComponent(layout, div, 4, 3, 1, 1); addComponent(layout, equal, 5, 0, 2, 1); addComponent(layout, changePN, 5, 2, 1, 1); addComponent(layout, clear, 5, 3, 1, 1); / 对按钮进行反应的方法 public void actionPerformed(ActionEvent e) JButton btn = (JButton)e.getSource(); if (btn = clear) operation.setText(0); dotExist = false; storedNumber = 0; lastOperator = ?; else if (btn = equal) operate(=); equaled = true; else if (btn = plus) operate(+); equaled = false; else if (btn = minus) operate(-); equaled = false; else if (btn = multi) operate(*); equaled = false; else if (btn = div) operate(/); equaled = false; else if (btn = changePN) operate(p); operate(=); equaled = true; else if (btn = sqrt) operate(s); operate(=); equaled = true; else if (equaled) storedNumber = 0; for (int i = 0; i 10; i+) if (btn = numbersi) if (operation.getText().equals(0) operation.setText( + i); else if(! operated) operation.setText(operation.getText() + i); else operation.setText( + i); operated = false; if (btn = dot & ! dotExist) operation.setText(operation.getText() + .); dotExist = true; / 进行运算的方法 private void operate(char operator) double currentNumber = Double.valueOf(operation.getText().doubleValue(); if (lastOperator = ?) storedNumber = currentNumber; else if (lastOperator = +) storedNumber += currentNumber; else if (lastOperator = -) storedNumber -= currentNumber; else if (lastOperator = *) storedNumber *= currentNumber; else if (lastOperator = /) storedNumber /= currentNumber; else if (lastOperator = p) storedNumber *= -1; else if (lastOperator = s) storedNumber = Math.sqrt(currentNumber); else if (lastOperator = = & equaled) storedNumber = currentNumber; operation.setText( + storedNumber); operated = true; lastOperator = operator; / 快捷使用GridBagLayout的方法 private void addComponent(GridBagLayout layout, Component component, int row, int col, int width, int height) GridBagConstraints constraints = new GridBagConstraints(); constraints.fill = GridBagConstraints.BOTH; constraints.insets = new Insets(10, 2, 10, 2); constraints.weightx = 100; constraints.weighty = 100; constraints.gridx = col; constraints.gridy = row; constraints.gridwidth = width; constraints.gridheight = height; layout.setConstraints(component, constraints); if (component instanceof JButton) (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025春季新疆石河子大学第一附属医院、石河子大学附属中医医院(兵团中医医院)校园招聘10人考前自测高频考点模拟试题及答案详解(易错题)
- 2025年浙江大学医学院附属第二医院招聘医师助理人员若干人考前自测高频考点模拟试题(含答案详解)
- 2025福建三明市教育局华东师范大学附属三明中学招聘紧缺急需专业工作人员18人模拟试卷及一套完整答案详解
- 2025年烟台龙口市卫生健康局所属事业单位公开招聘工作人员(55人)模拟试卷参考答案详解
- 2025海南澄迈县就业局招聘见习生1人考前自测高频考点模拟试题附答案详解(突破训练)
- 2025年4月四川成都师范学院考核招聘人员(第二批)模拟试卷附答案详解(考试直接用)
- 2025福建漳州市云霄立人学校招聘中学教师考前自测高频考点模拟试题及一套答案详解
- 2025黑龙江饶河县公益性岗位招聘30人模拟试卷附答案详解(模拟题)
- 2025湖南湘潭市纪委监委所属事业单位选调15人模拟试卷参考答案详解
- 2025广西南宁宁明县板棍乡卫生院招聘编外药剂人员1人考前自测高频考点模拟试题完整答案详解
- 2025上海金山巴士公共交通有限公司招聘30人笔试备考题库及答案解析
- 情商与智商的课件
- 3.3《含小括号的混合运算》(课件) -2025-2026学年三年级数学上册 西师大版
- 商业店铺施工方案
- 民法典之遗嘱继承课件
- 粮仓建筑施工管理办法
- 2025秋全体教师大会上,德育副校长讲话:德为根,安为本,心为灯,家为桥-这场开学讲话,句句都是育人的方向
- 急性肺水肿护理
- 供货进度保证措施方案
- DB3301∕T 0396-2023 大型商业综合体消防安全管理规范
- 2025年长沙市中考道德与法治试卷真题(含答案解析)
评论
0/150
提交评论