1.首先展示效果图(仅是单项运算),作为新手尽量降低了耦合,希望能得到大佬指点。

(1)设置按键(作为一个父类)

import java.awt.Button;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class keying implements Textbookandcount {private Button t0 = new Button("0");private Button t1 = new Button("1");private Button t2 = new Button("2");private Button t3 = new Button("3");private Button t4 = new Button("4");private Button t5 = new Button("5");private Button t6 = new Button("6");private Button t7 = new Button("7");private Button t8 = new Button("8");private Button t9 = new Button("9");private Button t10 = new Button("+");private Button t11 = new Button("-");private Button t12 = new Button("*");private Button t13 = new Button("/");private Button t14 = new Button("计算");private Button t15 = new Button("清零");private Panel p1 = new Panel();Button[] BU = { t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14 };public Button gett14() {return t14;}public Button gett15() {return this.t15;}/*** * @param a 设置网格布局的行数* @param b 设置网格布局的列数* @return 返回网格布局而且添加了按键的内嵌容器p1*/public Panel getp1(int a, int b) {p1.setLayout(new GridLayout(a, b, 10, 10));for (int i = 0; i <= 14; i++) {p1.add(BU[i]);}return p1;}/*** 给所有按键设置事件监听器,并且注册*/public void keyset() {for (int i = 0; i <= 9; i++) {int k = i;BU[i].addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubString s = String.valueOf(k);fd.setText(fd.getText() + s);}});}int k1 = 0;for (int i = 10; i <= 13; i++, k1++) {String[] s = { "+", "-", "*", "/" };int k2 = k1;BU[i].addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubfd.setText(fd.getText() + s[k2]);}});}}public void clearing() {t15.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {fd.setText("");;}});}
}

(2)对文本框中的内容进行计算(作为接口);

import java.awt.TextField;interface Textbookandcount {TextField fd = new TextField(20);TextField fd1 = new TextField(20);default TextField getfd() {return this.fd;}default TextField getfd1() {return this.fd1;}default void compute(String o) {String s = fd.getText();String[] h = s.split("");String front = "";String after = "";int u = h.length;int coun = 0;for (int i = 0; i <= u - 1; i++) {if (h[i].equals("/") || h[i].equals("*") || h[i].equals("+") || h[i].equals("-")) {coun = i;break;}}if (h[coun].equals(o)) {for (int i = 0; i < coun; i++) {front = front + h[i];}for (int k = coun + 1; k <= u - 1; k++) {after = after + h[k];}double coun1 = Double.parseDouble(front);double k = Double.parseDouble(after);double result = 0;if (o.equals("/")) {result = coun1 / k;}if (o.equals("*")) {result = coun1 * k;}if (o.equals("+")) {result = coun1 + k;}if (o.equals("-")) {result = coun1 - k;}String resul = String.valueOf(result);fd1.setText(resul);}}
}

(3)对两个部分进行组合:

import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.BoxLayout;public class stra1 extends keying implements Textbookandcount {protected Frame frame = new Frame("简单计算器");public void windows() {frame.setLayout(new BoxLayout(frame, BoxLayout.Y_AXIS));// 添加两个文本组件frame.add(getfd());frame.add(getfd1());// 添加内嵌组件,而且是3行5列的网格布局frame.add(getp1(3, 5));frame.add(gett15());setField();closswindow();count();frame.pack();frame.setVisible(true);}public void closswindow() {frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});}public void setField() {keyset();clearing();}public void count() {gett14().addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {compute("+");compute("-");compute("*");compute("/");}});}public static void main(String[] args) {// TODO Auto-generated method stubstra1 ty = new stra1();ty.windows();}
}

JAVA——简单计算器设计相关推荐

  1. Java 简单计算器(加法)

    Java 简单计算器(加法) 结构图: ​ 如何用java写一个简易的加法计算器?本人菜鸟一枚,半个小时完成.大部分代码的解读注释已经标记好了,如下 程序入口 程序的main方法应该始终保持干净清爽, ...

  2. 用android studio 完成简单计算器设计开发日志

    简单计算器的设计是学习安卓的第一个APP的设计,我发现,其实安卓跟Java有很大的相似性,虽然界面的设计要用到前端的设计,但是功能的实现基本都是使用Java来实现的,但由于对Android studi ...

  3. 求java简单计算器源代码_java简单计算器源代码

    简单计算器代码 package calcultorthree; import java.awt.BorderLayout;//导入边界布局管理器类 import java.awt.GridLayout ...

  4. java计算器简单吗,java简单计算器

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 无聊做个java加减乘除计算器,int型,没有小数,,呵呵,,真特么无聊,, package swing; import javax.swing.*; i ...

  5. Java简单记事本设计实验报告_基于JAVA的记事本设计报告.doc

    基于JAVA的记事本设计报告 华北科技学院计算机系综合性实验报告 PAGE 第 PAGE 11 页 XX学校计算机系综合性实验 实 验 报 告 课程名称 Java程序设计 实验学期 至 学年 第 学期 ...

  6. java简单计算器课程设计_java仿windows简易计算器课程设计 源码+报告

    [实例简介] java仿windows简易计算器课程设计 源码+报告 课直接运行. [实例截图] [核心代码] Java课设-简易计算器 └── Java课设-简易计算器 ├── Java课程设计.d ...

  7. java简单计算器课程设计报告_JAVA课程设计之计算器设计报告

    题 目: 计算器 院(系):xxx学院 年级专业:xxx班 学生姓名:xxx 指导老师:xx老师 开始时间:200x-xx-xx 完成时间:200x-xx-xx 目 录 1. 摘 要 2. 概要设计 ...

  8. Java简单记事本设计实验报告_java记事本实验报告

    期末考查大作业任务书 课程名称: Java 语言程序设计设计实验 题 目: 简单记事本得设计与实现 学 院: 管理学院 系: 信息管理系 专业班级: 学 号: 学生姓名: 起讫日期: 2015-09- ...

  9. Java简单计算器界面及功能的实现

    实验要求 编写计算器界面并实现其功能. 实验步骤 1.界面基本样式绘制 代码实现 import java.awt.*; import javax.swing.*; public class f_fra ...

最新文章

  1. 学术 | 热议:寒门硕士要不要继续读博士?
  2. svn无法创建分支的解决方法
  3. 一和零(二维01背包)
  4. angularjs 中 Factory,Service,Provider 之间的区别
  5. 【noip模拟】德充符
  6. Linux字符设备与块设备的区别
  7. lwip-1.4.1文档sys_arch翻译
  8. Open***学习笔记——*** Server网络配置
  9. VDI SolutionTrack - 上海站:11月20日
  10. [mstsc]解决win8 win10 平板无法被mstsc连接的问题
  11. 怎么彻底删除mysql服务_mysql怎么卸载干净?
  12. 计算机网络技术实训课程报告,大学网络技术基础课程的实训报告怎么写?
  13. 撬动百亿台设备,让物联网“造”起来!
  14. verilog 产生m序列
  15. 计算机系统时间无法更改,电脑时间改不了怎么办|电脑时间无法修改的解决方法...
  16. WBS:工作分解结构(Work Breakdown Structure)
  17. 史上最简SLAM零基础解读(7) - Jacobian matrix(雅可比矩阵) → 理论分析与应用详解(Bundle Adjustment)
  18. 文学类的小说,言情类的,没有排行榜上的
  19. xiunobbs回帖时间排序修改
  20. 空气开关A型、B型、C型、D型的区别

热门文章

  1. 麦当劳叔叔用 AI 面试服务员,合格就录用
  2. Jquery-判断form表单数据是否变化
  3. python菜鸟教程100实例-python菜鸟教程官网
  4. 字节一面:Redis主节点宕机,如何处理?
  5. 安川e1000中文说明书_安川变频器E1000快速使用指南.pdf
  6. 图像仿射变换原理2:矩阵变换、线性变换和图像线性变换矩阵
  7. 3. 描述性统计分析
  8. 数学分析教程(科大)——1.8笔记+习题
  9. 计算机主板维修高手,计算机电路基础与维修高手电脑硬件维修高手速成
  10. 金鸽智慧农业解决方案