这次的小练习分享,需要完成这样的一个简单的要计算器,如图:
当点击 等号 的按钮时,第三个文本框中的参数 需要显示为 第一个文本框和第二个文本框当中的参数 计算后的和,并且需要清空第一个和第二个文本框当中的参数,只保留最后需要查看结果的第三个文本框中的参数。也就是点击等于号,第一个框和第二个框中的参数消失,只显示第三个框中 计算前两个框中参数和的显示。
我们先用前面博文中已知内容,把基本的小样式搭出来,然后在慢慢进行实现和改造:
package com.Ltz2.test;
import java.awt.*;
//简易的计算器练习
public class TestCount {
//启动程序的主方法
public static void main(String[] args) {
new Count("自定义简易计算器的实现测试");
}
}
//计算器界面实现类
class Count extends Frame{
//无参构造,用于初始化对象的属性赋值操作
public Count(String title){
//存放计算数字的文本框
TextField t1 = new TextField(10);
TextField t2 = new TextField(10);
TextField t3 = new TextField(20);
//运算符+号的标签
Label label = new Label("+");
//运算符=号的按钮
Button button = new Button("=");
//将其全部添加到窗体当中
add(t1);
add(label);
add(t2);
add(button);
add(t3);
//设置布局
setLayout(new FlowLayout());
//设置布局自适应
pack();
//设置窗体可见性
setVisible(true);
}
}
//运行看一下效果,这个先不挂图了。只是简单的把计算器的样式实现出来。
这里我就直接在代码上写了,然后说明用注释写进代码里了
package com.Ltz2.test;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//简易的计算器练习
public class TestCount {
//启动程序的主方法
public static void main(String[] args) {
new Count("自定义简易计算器的实现测试");
}
}
//计算器界面实现类
class Count extends Frame{
//无参构造,用于初始化对象的属性赋值操作
public Count(String title){
//存放计算数字的文本框
TextField t1 = new TextField(10);
TextField t2 = new TextField(10);
TextField t3 = new TextField(20);
//运算符+号的标签
Label label = new Label("+");
//运算符=号的按钮
Button button = new Button("=");
//开始给等号的按钮添加点击事件
button.addActionListener(new MyActionListener(t1,t2,t3));
//将其全部添加到窗体当中
add(t1);
add(label);
add(t2);
add(button);
add(t3);
//设置布局
setLayout(new FlowLayout());
//设置布局自适应
pack();
//设置窗体可见性
setVisible(true);
//在添加一个关闭方法
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
//自定义监听类
class MyActionListener implements ActionListener {
private TextField t1, t2, t3;
//利用构造器将计算器类中接收到的数字参数取过来
public MyActionListener(TextField t1,TextField t2, TextField t3){
this.t1 =t1;
this.t2 =t2;
this.t3 =t3;
}
@Override
public void actionPerformed(ActionEvent e) {
//取到参数之后,开始实现监听事件的逻辑
//先获取三个参数的对象
int i1 = Integer.parseInt(t1.getText());
int i2 = Integer.parseInt(t2.getText());
//有了对象,把参数进行运算,在存入到第三个框框中
t3.setText(""+(i1+i2)); //利用字符串进行拼接,注意运算优先级,加上括号
//最后在将前两个框框中的内容清空
t1.setText("");
t2.setText("");
}
}
在看一下最后的实现效果
输入好了之后,我在点击等号
好。。。。极Low的一个简易计算机 OK了。。。
其实一个简单的小demo里也能涵盖到很多小小的技能点,练习的越多总越能感受到里面的精髓。回头在写一篇,用面向对象的思想给这个计算器里的代码改造改造。