TFMath Caculator:一个简单的Java AWT计算器

目录

背景:

代码展示:

代码解析:

输出结果:

总结: 


背景:

 使用Java AWT(Abstract Window Toolkit)库创建的简单计算器应用-TFMath Calculator。这个计算器允许用户输入两个数字,点击=号按钮后,计算器会计算这两个数字的和,并在结果栏中显示结果,下面来详细讲解

代码展示:

import java.awt.*;  
import java.awt.event.*;  
  
public class TFMath {  
  public static void main(String[] args) {  
    TFFrame frame = new TFFrame();  
    frame.launchFrame();  
  }  
}  
  
class TFFrame extends Frame {  
  TextField num1, num2, result; // 将这些字段声明为实例变量  
  Button btnEqual;  
  
  public void launchFrame() {  
    num1 = new TextField(10);  
    num2 = new TextField(10);  
    result = new TextField(15); // 结果的 TextField  
    Label lblPlus = new Label("+");  
    btnEqual = new Button("=");  
      
    // 添加 ActionListener 到按钮  
    btnEqual.addActionListener(new MyMonitor());  
  
    setLayout(new FlowLayout());  
    add(num1);  
    add(lblPlus);  
    add(num2);  
    add(btnEqual);  
    add(result);  
    pack();  
    setVisible(true);  
  }  
  
  public TFFrame() {  
    setTitle("TFMath Calculator");  
    setSize(300, 200);  
  }  
  
  // 内部类,监听按钮点击事件  
  private class MyMonitor implements ActionListener {  
    public void actionPerformed(ActionEvent e) {  
      try {  
        int n1 = Integer.parseInt(num1.getText());  
        int n2 = Integer.parseInt(num2.getText());  
        int sum = n1 + n2; // 计算和  
        result.setText(String.valueOf(sum)); // 设置结果 TextField 的文本  
      } catch (NumberFormatException ex) {  
        result.setText("Invalid input"); // 处理输入不是数字的情况  
      }  
    }  
  }  
}

代码解析:

1.导入所需要的库

import java.awt.*;  
import java.awt.event.*;

2.主类TFMath (程序入口点,TFMath类包含一个Main方法,该方法创建一个TFFrame对象实例,并调用launchFrame方法来显示窗口)

public class TFMath {  
  public static void main(String[] args) {  
    TFFrame frame = new TFFrame();  
    frame.launchFrame();  
  }  
}

3.TFFrame类:

   -声明变量:(用于存储输入字段、结果显示字段和等号按钮引用)

TextField num1, num2, result; // 将这些字段声明为实例变量  
Button btnEqual;

  -launchFrame方法: (初始化窗口,创建文本字段、标签、按钮,将它们添加到窗体中。然后,它调用pack方法来自动:(TFFrame类的构造函数,用于设置窗口的标题大小) 

public TFFrame() {  
  setTitle("TFMath Calculator");  
  setSize(300, 200);  
}

  -MyMonitor内部类 :(实现ActionListener接口。处理等号按钮的点击事件,当用户点击等号时,它会从两个输入字段中获取数字,计算总和,将结果显示在结果字段上)

private class MyMonitor implements ActionListener {  
  public void actionPerformed(ActionEvent e) {  
    // ... 处理按钮点击事件,计算数字的和 ...  
  }  
}

输出结果:

 

总结: 

类别细节
类名TFMath, TFFrame, MyMonitor
TFMath类
- 方法main(String[] args)
功能:程序的入口点,创建TFFrame实例并调用其launchFrame方法
TFFrame类
- 变量num1, num2, result (TextField)
btnEqual (Button)
功能:存储文本字段和按钮的引用
- 方法launchFrame()<br>功能:初始化窗口组件,设置布局,添加组件,并显示窗口
TFFrame()
功能:构造函数,设置窗口标题和大小
- 内部类MyMonitor<br>功能:实现ActionListener接口,处理按钮点击事件,计算数字的和
MyMonitor类
- 方法actionPerformed(ActionEvent e)<br>功能:从两个文本字段获取数字,计算它们的和,并更新结果文本字段。如果输入无效,则显示错误消息
GUI组件
- 文本字段num1num2 (用于输入数字)
result (用于显示结果)
- 按钮btnEqual (等号按钮,触发计算操作)
- 标签lblPlus (显示加号符号)
事件处理
- 事件类型ActionEvent
功能:响应按钮点击事件
- 监听器MyMonitor
功能:处理按钮点击事件,执行计算操作
其他
- 布局FlowLayout
功能:用于确定组件在窗口中的排列方式
- 窗口设置标题:"TFMath Calculator"
大小:300x200像素

 TFMath Calculator是一个简单的Java AWT计算器应用,它允许用户输入两个数字,并计算它们的和。通过使用Java AWT库和事件处理机制,我们创建了一个具有图形用户界面的计算器,使用户能够通过点击按钮来触发计算操作。这个应用是一个很好的示例。展示了如何使用Java AWT库来创建简单的GUI应用。并处理事件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/754698.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Redis四】主从复制、哨兵以及Cluster集群

目录 一.主从复制、哨兵、集群的区别 二.Redis主从复制 1.作用 2.原理 3.流程 三.搭建Redis 主从复制 1.源码编译安装以及配置文件修改 1.1.修改 Redis 配置文件&#xff08;Slave节点操作&#xff09; 2.验证主从复制 2.1.在Master节点上看日志 2.2.在Master节点上…

混凝土搅拌站中的智能化系统应用

随着科技的飞速发展&#xff0c;混凝土搅拌站已经进入了现代化、智能化的新时代。现代自动化、智能化技术的应用&#xff0c;使得混凝土搅拌站更加高效、准确、可靠&#xff0c;同时也提高了生产效率和质量。本文将带你深入探索混凝土搅拌站中运用到现代自动化、智能化的方方面…

k8s架构设计思想

1.谷歌borg云计算管理平台 一类&#xff1a;infrastucture platform software 另一类&#xff1a;borg为主的非虚拟化技术&#xff0c;调度进程 核心是轻量级作业调度&#xff0c;不是做虚拟化/云平台的 borg本身用了一些容器技术 生产业务product workload要求高可用&#xf…

第三节:如何理解Spring的两个特性IOC和AOP(自学Spring boot 3.x第一天)

大家好&#xff0c;我是网创有方&#xff0c;接下来教大家如何理解Spring的两个特性IOC和AOP。本节有点难&#xff0c;大家多理解。 IOC&#xff08;控制反转&#xff09; 定义与核心思想&#xff1a; IOC&#xff0c;全称Inversion of Control&#xff0c;即控制反转。 其核…

为什么ISO 45001职业健康安全管理体系是企业发展的基石

ISO 45001源自OHSAS 18001职业健康和安全管理体系&#xff0c;是全球第一个国际职业健康和安全管理标准。ISO&#xff08;国际标准化组织&#xff09;于2018年发布了这一标准&#xff0c;旨在帮助各类组织为员工提供一个更安全、更健康的工作环境。与OHSAS 18001相比&#xff0…

云原生之使用Docker部署RabbitMQ消息中间件

云原生之使用Docker部署RabbitMQ消息中间件 一、RabbitMQ介绍1.1 RabbitMQ简介1.2 RabbitMQ特点1.3 RabbitMQ使用场景 二、检查Docker环境2.1 检查Docker版本2.2 检查操作系统版本2.3 检查Docker状态 三、下载RabbitMQ镜像四、部署RabbitMQ服务4.1创建挂载目录4.2 运行RabbitMQ…

LabVIEW在光学与光子学实验室中的应用

光学与光子学实验室致力于光学和光子学前沿领域的研究&#xff0c;涉及超快光学、非线性光学、光纤通信、光子晶体等多个方向。实验室需要高精度的实验控制和数据采集系统&#xff0c;以进行复杂的光学实验&#xff0c;并对实验数据进行实时处理和分析。 项目需求 实时控制与监…

C++再谈构造函数、隐式类型转换、static成员、友元函数、内部类等的介绍

目录 前言一、再谈构造函数1. 构造函数体赋值2. 初始化列表3. 初始化列表初始化顺序4. 初始化隐式类转换 二、static成员1. 概念2. 特性 三、 友元1. 友元函数2. 友元类 四、内部类总结 前言 C再谈构造函数、隐式类型转换、static成员、友元函数、内部类等的介绍 一、再谈构造…

imx6ull/linux应用编程学习(3) 输入设备应用编程(上)(按键)

0.概念 输入设备&#xff1a;可以产生输入事件的设备 Linux系统设计了一个兼容所有输入设备的框架&#xff0c;就是input子系统&#xff0c;其直接向应用层提供了一套统一的接口&#xff0c;其在/dev/input目录下。 流程&#xff1a;如果要读取输入设备&#xff0c;一般遵循以下…

Spring AOP实战--之优雅的统一打印web请求的出参和入参

背景介绍 由于实际项目内网开发&#xff0c;项目保密&#xff0c;因此本文以笔者自己搭建的demo做演示&#xff0c;方便大家理解。 在项目开发过程中&#xff0c;团队成员为了方便调试&#xff0c;经常会在方法的出口和入口处加上log输出&#xff0c;由于每个人的log需求和输…

IOS17闪退问题Assertion failure in void _UIGraphicsBeginImageContextWithOptions

最近项目更新到最新版本IOS17&#xff0c;发现一个以前的页面突然闪退了。原来是IOS17下&#xff0c;这个方法 UIGraphicsBeginImageContext(CGSize size) 已经被移除&#xff0c;原参数如果size为0的话&#xff0c;会出现闪退现象。 根据说明&#xff0c;上述方法已经被替换…

《UDS协议从入门到精通》系列——图解0x38:请求上传

《UDS协议从入门到精通》系列——图解0x38&#xff1a;请求上传 一、简介二、数据包格式2.1 服务请求格式2.2 服务响应格式2.2.1 肯定响应2.2.2 否定响应 三、通信示例 Tip&#x1f4cc;&#xff1a;本文描述中但凡涉及到其他UDS服务的&#xff0c;将陆续提供链接跳转方式以便快…

MySQL数据库存储引擎

MySQL数据库存储引擎 存储引擎概念 存储引擎也称为表类型 通过不同的技术比如说&#xff0c;存储机制&#xff0c;索引技巧&#xff0c;锁定水平等等&#xff0c;来提供不同的功能。 查看MySQL支持的存储引擎 show engines\G&#xff1b; 常用引擎比较 对事务有需求 innodb …

蚂蚁- 定存

一&#xff1a;收益变动&&收益重算 1.1: 场景组合 1: 澳门元个人活期&#xff0c;日终余额大于0&#xff0c;当日首次、本周本月非首次系统结息&#xff0c;结息后FCDEPCORE_ASYN_CMD_JOB捞起进行收益计算 【depc_account_revenue_detail】收益日 > 【depc_accoun…

【Unity Linux】模型导致的Unity项目崩溃

模型需勾选Strip Bones。如不勾选&#xff0c;则开启项目崩溃。 也可以删除有问题模型的.meta文件。 &#xff08;Unity默认会自动勾选&#xff0c;所以不会崩溃&#xff09; 或打开.meta文件&#xff0c;将optimizeBones的值&#xff0c;由0改为1。&#xff08;对应面板上的…

实时智能全托管-云器Lakehouse重新定义多维数据分析

导读 本文将分享云器Lakehouse如何重新定义实时多维分析&#xff0c;帮助客户实现实时、智能、全托管的数据平台。主要内容包括以下几大部分&#xff1a; 多维数据分析的发展趋势和场景解析 技术解析&#xff1a;新一代数平台Lakehouse如何支持实时分析需求 价值解析&#x…

java 统计xmind的结点数(测试用例case数)

mac电脑解压出来的xmind的数据主要在content.json上 开头结尾有[],里面是json import org.json.JSONArray; import org.json.JSONObject; import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream;public class XMindLeafCounter2 {public stat…

【观察】戴尔科技+AMD:释放技术创新“乘数效应”,助力制造业打造“新质生产力”...

在今年的政府工作报告中&#xff0c;“人工智能”首次被写入报告&#xff0c;同时“大力推进现代化产业体系建设&#xff0c;加快发展新质生产力”也被列为2024年的首项政府工作任务&#xff0c;其重要性不言而喻。 尤其是最近几年&#xff0c;以人工智能、大模型、大数据、云计…

【漏洞复现】万户-ezOFFICE download_ftp.jsp 任意文件下载漏洞

免责声明&#xff1a; 本文内容旨在提供有关特定漏洞或安全漏洞的信息&#xff0c;以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步&#xff0c;并非出于任何恶意目的。阅读者应该明白&#xff0c;在利用本文提到的漏洞信息或进行相关测…

讲座学习截图——《CAD/CAE/CAM几何引擎-软件概述》(一)

目录 引出CAD/CAE/CAM几何引擎-软件概述 郝建兵CADCAECAM 几何模型内核ACIS 两个老大之一Open CascadeParasolid 两个老大之一Autodesk的内核 总结其他自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.进行触发 自定义信号重载带参数的按钮触发信号触发信号拓展 lambda表达式…