JAVA 图形开发之计算器设计(事件监听机制)
/*文章中用到的代码只是一部分,需要源码的可通过邮箱联系我 1978702969@qq.com*/
前段时间刚帮同学用MFC写了个计算器,现在学到JAVA的图形开发,就试着水了一个计算器出来。(可以说是一个水的不能再水的计算器了,感觉MFC真好用)
既然是设计计算器,首先肯定是要做一个计算器界面出来了,但面对JAVA容器的两种布局,想把按钮放整齐真的是一件比较难的事,我就直接用了坐标法贴图(上篇博客中有介绍)。这是我设计的界面

界面设计完了,下面就要开始实现按按钮输入数据。这时就需要使用事件监听机制了。
首先需要知道如何获取数据,
//定义一个类,以ActionListener为接口
public class ButtonListener implements ActionListener { public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();//通过这个方法来获取每个按钮表示的字符串 //...
} }
当获取到按钮表示的字符串的时候就需要根据字符串的内容来进行下一步操作,这时候可以用if..else 或是switch来进行
数据部分
if (flag1)
{//整数部分,整数部分通过一个flag1变量来判断是否写了小数点
a *= 10;
a = a + (double) Integer.parseInt(str);
s += str;
this.text1.setText(s);
// System.out.println(a);
}
else
{//小数部分
i++;
b = b + Double.parseDouble(str) / Math.pow(10, i);
s += str;
this.text1.setText(s);
// System.out.println(b);
}
符号部分可设一个int类型的变量,用来记录输入了什么运算符,最后在点击等号时,再根据该变量的值来进行运算。
case ".":
flag1 = false;
//...
break;
case "+":
flag1 = true;
flag2 = 1;
//...
break;
//...........
case "=":
if (flag2 == 1)
//..........
break;
定义好了这个类后,就只需要再修改修改画计算器界面的方法就可以了,怎么修改呢?就是创建一个事件监听类的对象,然后在每个按钮对象的addActionListener()方法中加入该对象就可以了。
ButtonListener blist = new ButtonListener();
JButton button = new JButton();
button.addActionListener(blist);
//.....
运行一下,再算一个式子。emmmmmmmmm。。。。。。。发现了什么没有?文本框没有显示结果?!!想一想还缺了什么没有?。。。。。。。我们并没有把文本框传到我们写的类中!所以,我们需要写一个构造方法,用来传入文本框对象。
public ButtonListener(JTextField jtext) {
this.text1 = jtext;
}
那前面也要相应改为
button.addActionListener(blist);
嗯,现在再运行一下,可以计算了吧?但这只是一个简单的不能再简单的计算器,再想一想怎么能把它更加完善。
JAVA 图形开发之计算器设计(事件监听机制)的更多相关文章
- Java swing(awt):事件监听机制的实现原理+简单示例
(1)实现原理 事件监听机制的实现: 参考图:事件模型_ActionEvent 为了节省资源,系统无法对某个事件进行实时的监听.故实现的机制是当发生某个事件后,处理代码将被自动运行,类似钩子一般.(回 ...
- 图形用户界面(GUI)事件监听机制——窗体事件Frame
窗体事件.Button的使用 本事例给出一个窗体的定义方法,基本属性设置,给窗体添加退出按钮,让按钮具备退出的功能.熟悉监听器的使用 按钮就是事件源. 那么选择哪一个监听器呢? 通过关闭窗体事例了解到 ...
- Android 开发中的View事件监听机制
在开发过程中,我们常常根据实际的需要绘制自己的应用组件,那么定制自己的监听事件,及相应的处理方法是必要的.我们都知道Android中,事件的监听是基于回调机制的,比如常用的OnClick事件,你了解它 ...
- 创建图形用户界面GUI和事件监听机制的简单实现(java)
创建图形化界面 1.创建Frame窗体 2.对窗体进行基本设置 比如:大小.位置.布局 3.定义组件 4.将组建通过窗体添加到窗体中 5.让窗体显示,通过setVisib ...
- java Gui编程 事件监听机制
1. GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在DOS命令行中通过javac java命令启动程序. 软件的交互的方式: 1. 命令交互方式 图书管理系统 ...
- 4.JAVA之GUI编程事件监听机制
事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...
- JAVA之旅(三十一)——JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件
JAVA之旅(三十一)--JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件 有段时间没有更新JAVA了,我们今天来说一下JAVA中的图形化界面,也就是GUI ...
- java事件监听机制
1.简单的事件监听 package demo2; /* * java事件监听机制 */ import java.awt.*; import javax.swing.*; import java.awt ...
- Java 中的事件监听机制
看项目代码时遇到了好多事件监听机制相关的代码.现学习一下: java事件机制包含三个部分:事件.事件监听器.事件源. 1.事件:继承自java.util.EventObject类,开发人员自己定义. ...
随机推荐
- UML类图学习笔记
http://note.youdao.com/noteshare?id=d5af220db7081dda73511fcb7b4da390
- 函数和常用模块【day05】:生成器并行计算(五)
本节内容 1.概述 2.生成器执行原理 3.send()和__next__()方法的区别 4.yield实现并行效果 一.概述 之前只是介绍生成器,那有些同学就说了,这个生成器除了能节省资源,提高工作 ...
- saltstack主机管理项目【day39】:主机管理项目开发
项目目标 salt state.apply -h "ubuntu,centos" -g "ubuntu,centos" -f "ubuntu,cent ...
- 什么是spu和sku
电商概念SPU与SKU SPU = Standard Product Unit (标准产品单位)SPU是商品信息聚合的最小单位,是一组可复用.易检索的标准化信息的集合,该集合描述了一个产品的特性.通俗 ...
- 何凯文每日一句||DAY10
- Linux 命令详解(一)export 命令
一.Windows 环境变量 1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似 ...
- alloffthelights使用方法
官网上的demo没有用,因为官网用的jquery是谷歌的CDN,download下来的demo也没有用,因为demo的路径下少了jquery.所以自己写demo的时候要把jquery和alloffth ...
- AngularJs -- ngMessages(1.3+)
ngMessages(1.3+) 表单和验证是AngularJS中复杂的组件之一.用AngularJS默认的方式来写,不是特别好,不简洁. 在AngualrJS1.3发布前,表单验证必须以这种方式编写 ...
- expect 交互 telnet 交互
telnet 交互 #!/bin/bash Ip="10.0.1.53" a="\{\'method\'\:\'doLogin\'\,\'params\'\:\{\'uN ...
- vs-code 配置
vs-code 快键键 命令面板 ctrl+shift+p vs-code 相关插件 AutoFileName Chinese (Simplified) Language Pack for Visua ...