




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用java swing 代码制作的一个简易版本的计算器,代码由本人亲自写出,如有算法雷同,确实是巧合。 写计算器除了有javaswing技术之外,还需要一些逻辑思维,所以,逻辑思维是每个人都有的,每个人写出的代码都会有所不同,这里的算法供大家参考。package com.yidu.student.service;import java.awt.Container;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JTextField;/* * 计算器 * author liandyao * */public class CalcFrameTest extends JFrame/* * 计算器窗体的宽度 */public final static int JF_WIDTH= 300 ;/* * 计算器窗体的高度 */public final static int JF_HEIGHT= 300 ;/* * 按钮的宽度 */public final static int BT_WIDTH= 50 ;/* * 按钮的高度 */public final static int BT_HEIGHT= 30 ;/* * 使用的字体 */public final static Font font = new Font(微软雅黑, Font.BOLD, 20);/* * 数字事件监听类 */NumberActionListener numberListenere = new NumberActionListener();/* * 符号事件监听类 */OpertorActionListener opertorActionListener = new OpertorActionListener() ;/* * 面板容器 */Container c = null ; /面板容器/* * 计算器的显示数字的文本框 */JTextField jfNumber ; /计算器的显示数字的文本框/* * 运算符号 */String op = = ;boolean isOp = false; /定义一个变量,用来区分是否已经点击了符号。默认设置为否/* * 每次运算的结果 */double result = 0 ; public CalcFrameTest()this.setTitle(计算器);this.setSize(300, 300) ;this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;this.setLocationRelativeTo(null) ;/设置在屏幕的中心this.setResizable(false) ;c = this.getContentPane() ;c.setLayout(null) ;init(); /初始化界面this.setVisible(true) ;/* * 初始化界面 */public void init()jfNumber = new JTextField() ;jfNumber.setBounds(10, 5, JF_WIDTH-20, 30) ;c.add(jfNumber) ;/* * 第一行排列 */JButton jb7 = new JButton(7) ;jb7.setBounds(30, 70, BT_WIDTH, BT_HEIGHT) ;/加入数字按钮事件jb7.addActionListener(numberListenere) ;c.add(jb7) ;JButton jb8 = new JButton(8) ;jb8.setBounds(90, 70, BT_WIDTH, BT_HEIGHT) ;/加入数字按钮事件jb8.addActionListener(numberListenere) ;c.add(jb8) ;JButton jb9 = new JButton(9) ;jb9.setBounds(150, 70, BT_WIDTH, BT_HEIGHT) ;/加入数字按钮事件jb9.addActionListener(numberListenere) ;c.add(jb9) ;/* * 运算符+号出现的地方 */JButton jb_jia = new JButton(+) ;jb_jia.setFont(font) ;jb_jia.setBounds(210, 70, BT_WIDTH, BT_HEIGHT) ;/加入事件jb_jia.addActionListener(opertorActionListener) ;c.add(jb_jia) ;/* * +号结束 */* * 第2行排列 */JButton jb4 = new JButton(4) ;jb4.setBounds(30, 110, BT_WIDTH, BT_HEIGHT) ;/加入数字按钮事件jb4.addActionListener(numberListenere) ;c.add(jb4) ;JButton jb5 = new JButton(5) ;jb5.setBounds(90, 110, BT_WIDTH, BT_HEIGHT) ;/加入数字按钮事件jb5.addActionListener(numberListenere) ;c.add(jb5) ;JButton jb6 = new JButton(6) ;jb6.setBounds(150, 110, BT_WIDTH, BT_HEIGHT) ;/加入数字按钮事件jb6.addActionListener(numberListenere) ;c.add(jb6) ;/* * 运算符-号出现的地方 */JButton jb_jian = new JButton(-) ;jb_jian.setBounds(210, 110, BT_WIDTH, BT_HEIGHT) ;/加入事件jb_jian.addActionListener(opertorActionListener) ;jb_jian.setFont(font) ;c.add(jb_jian) ;/* * -号结束 */* * 第3行排列 */JButton jb1 = new JButton(1) ;jb1.setBounds(30, 150, BT_WIDTH, BT_HEIGHT) ;/加入数字按钮事件jb1.addActionListener(numberListenere) ;c.add(jb1) ;JButton jb2 = new JButton(2) ;jb2.setBounds(90, 150, BT_WIDTH, BT_HEIGHT) ;/加入数字按钮事件jb2.addActionListener(numberListenere) ;c.add(jb2) ;JButton jb3 = new JButton(3) ;jb3.setBounds(150, 150, BT_WIDTH, BT_HEIGHT) ;/加入数字按钮事件jb3.addActionListener(numberListenere) ;c.add(jb3) ;/* * 运算符*号出现的地方 */JButton jb_cheng = new JButton(*) ;jb_cheng.setFont(font);jb_cheng.setBounds(210, 150, BT_WIDTH, BT_HEIGHT) ;/加入事件jb_cheng.addActionListener(opertorActionListener) ;c.add(jb_cheng) ;/* * *号结束 */* * 第4行排列 */第一个空缺JButton jb_dian = new JButton(C) ;jb_dian.setBounds(30, 190, BT_WIDTH, BT_HEIGHT) ;jb_dian.addActionListener(numberListenere) ;c.add(jb_dian) ;/第二个开始JButton jb0 = new JButton(0) ;jb0.setBounds(90, 190, BT_WIDTH, BT_HEIGHT) ;/加入数字按钮事件jb0.addActionListener(numberListenere) ;c.add(jb0) ;JButton jb_dy = new JButton(=) ;jb_dy.setFont(font);jb_dy.setBounds(150, 190, BT_WIDTH, BT_HEIGHT) ;/加入事件jb_dy.addActionListener(opertorActionListener) ;c.add(jb_dy) ;/* * 运算符/号出现的地方 */JButton jb_chu = new JButton(/) ;jb_chu.setFont(font);jb_chu.setBounds(210, 190, BT_WIDTH, BT_HEIGHT) ;/加入事件jb_chu.addActionListener(opertorActionListener) ;c.add(jb_chu) ;/* * /号结束 */* * 这个是数字的按钮事件 * author Administrator * */class NumberActionListener implements ActionListenerOverridepublic void actionPerformed(ActionEvent e) JButton j = (JButton)e.getSource() ; /事件的源String text = j.getText() ; /获取到点击按钮的值if(C.equals(text)jfNumber.setText(0) ;return ;String yuan = jfNumber.getText() ; /之前已经存在的文本保存if(isOp)jfNumber.setText(text) ; /将按钮的值设置到文本框中 isOp = false ;/重新将isOp置为falseelsejfNumber.setText(yuan+text) ; /将按钮的值设置到文本框中/* * 这个是符号的按钮事件 * author Administrator * */class OpertorActionListener implements ActionListenerOverridepublic void actionPerformed(ActionEvent e) JButton j = (JButton)e.getSource() ; /事件的源String text = j.getText() ; /获取到点击按钮的值String txt_number = jfNumber.getText() ; /获取到文本框中的数字double num = Double.valueOf(txt_number).doubleValue() ;if(+.equals(op)result += num ;else if(-.equals(op)result -= num ;else if(*.equals(o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 销售咨询运营方案范文
- 云浮商场促销活动策划方案
- 某私立学校关于人工智能教育教学试点工作总结报告
- 教代会民主评议学校领导干部暂行办法
- 农业咨询调查方案范文
- 大连立体植物墙施工方案
- 医疗健康产业新动能前景展望
- 电商平台电商生态圈构建
- 关于举办第六届高效先进破碎筛分与磨矿分级技术交
- 巡察财务方面存在的问题及整改措施
- 职工干部禁毒知识培训课件
- 2026届新高考地理热点冲刺复习全球气候变化及影响
- 供销社招聘考试题及答案
- 2025中煤天津设计工程有限责任公司公开招聘6人笔试参考题库附带答案详解
- 无人机维修安全知识培训课件
- 机械设备维护保养详细操作手册
- 村卫生室消防知识培训课件
- 智能控制技术发展前景分析
- T-CCASC 0043-2024 氯碱工业数字化车间建设指南 电解
- 2024年西安医学院第一附属医院招聘真题
- 国企纪委面试题目及答案
评论
0/150
提交评论