GUI编程,简易计算器的实现

这次的小练习分享,需要完成这样的一个简单的要计算器,如图:
在这里插入图片描述
当点击 等号 的按钮时,第三个文本框中的参数 需要显示为 第一个文本框和第二个文本框当中的参数 计算后的和,并且需要清空第一个和第二个文本框当中的参数,只保留最后需要查看结果的第三个文本框中的参数。也就是点击等于号,第一个框和第二个框中的参数消失,只显示第三个框中 计算前两个框中参数和的显示。

我们先用前面博文中已知内容,把基本的小样式搭出来,然后在慢慢进行实现和改造:

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里也能涵盖到很多小小的技能点,练习的越多总越能感受到里面的精髓。回头在写一篇,用面向对象的思想给这个计算器里的代码改造改造。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兔C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值