GUI编程第三弹_按钮上的ActionEvent事件

2024-01-24 08:50

本文主要是介绍GUI编程第三弹_按钮上的ActionEvent事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天学了一下文本框和按钮,感觉创建文本框和按钮都不是问题,但要处理事件却是一件很麻烦的事情,比如有一个 “确定” 按钮,当我们单击这个确定按钮后会发生什么事情呢,不一定,我们需要重写写接口ActionListener的方法,本来想着做一个简易计算器,一开始觉着很简单,但仔细一想貌似不是很容易,一个计算器至少需要 10个数字按钮,外加 一些运算法则的按钮,当触发这些按钮后,每一个按钮后需要写的东西有很多,想想我就醉了。。于是果断决定,还是先撸出来一个a+b再说吧。。

文本框


JComponent 的子类 JTextField 负责创建文本框;


按钮


JComponent 的子类 JButton 负责创建按钮;


请自行熟悉一下这两个类。


a+b 源码:

主类

public class Event {public static void main(String[] args){Wgame w=new Wgame();w.setTitle("super a+b");}
}

重写JFrame,即构建窗口;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Wgame extends JFrame{JTextField input1,input2;JTextField output;JButton result;ListenResult ls;public Wgame(){init();setBounds(20,30,300,300);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}void init(){setLayout(new FlowLayout());//设置组件流式布局input1=new JTextField(20);input2=new JTextField(20);output=new JTextField(20);add(input1);add(input2);result=new JButton("获得两数之和");add(result);output.setEditable(false);add(output);ls=new ListenResult();result.addActionListener(ls);ls.setA(input1);ls.setB(input2);ls.setOutput(output);}
}

按钮的监听器:

import java.awt.event.*;
import javax.swing.*;
import java.math.*;
public class ListenResult implements ActionListener{JTextField a,b,c;public void setA(JTextField t){a=t;}public void setB(JTextField t){b=t;}public void setOutput(JTextField t){c=t;}public void actionPerformed(ActionEvent e){BigInteger ta,tb;try{ta=new BigInteger(a.getText());tb=new BigInteger(b.getText());c.setText(ta.add(tb).toString());}catch(Exception ee){c.setText("请输入数字");}}
}

效果如下:

                                                          


这篇关于GUI编程第三弹_按钮上的ActionEvent事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/639146

相关文章

禁止平板,iPad长按弹出默认菜单事件

通过监控按下抬起时间差来禁止弹出事件,把以下代码写在要禁止的页面的页面加载事件里面即可     var date;document.addEventListener('touchstart', event => {date = new Date().getTime();});document.addEventListener('touchend', event => {if (new

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

Go Playground 在线编程环境

For all examples in this and the next chapter, we will use Go Playground. Go Playground represents a web service that can run programs written in Go. It can be opened in a web browser using the follow

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念

函数式编程思想

我们经常会用到各种各样的编程思想,例如面向过程、面向对象。不过笔者在该博客简单介绍一下函数式编程思想. 如果对函数式编程思想进行概括,就是f(x) = na(x) , y=uf(x)…至于其他的编程思想,可能是y=a(x)+b(x)+c(x)…,也有可能是y=f(x)=f(x)/a + f(x)/b+f(x)/c… 面向过程的指令式编程 面向过程,简单理解就是y=a(x)+b(x)+c(x)

Java并发编程之——BlockingQueue(队列)

一、什么是BlockingQueue BlockingQueue即阻塞队列,从阻塞这个词可以看出,在某些情况下对阻塞队列的访问可能会造成阻塞。被阻塞的情况主要有如下两种: 1. 当队列满了的时候进行入队列操作2. 当队列空了的时候进行出队列操作123 因此,当一个线程试图对一个已经满了的队列进行入队列操作时,它将会被阻塞,除非有另一个线程做了出队列操作;同样,当一个线程试图对一个空