事件处理技术笔记
2026/8/21 8:55:36 网站建设 项目流程

事件处理

事件:鼠标点击按钮就是一次事件

1.监听到事件

鼠标会拍照上传给电脑

电脑会分析照片前后之间的区别,以此判断鼠标的移动

将移动的结果反馈到显卡上,将鼠标的光标绘制到对应位置

系统会将位置传输给对应的运行中的界面程序

如果重合了,并且鼠标发出了按下的指令,确定按钮被点击了

按下按钮后,调用一段代码去执行

注意:以上步骤均为已有代码完成,无需自己编写

2.需要实现一个监听处理类,在其中编写按下按钮之后的代码 (共五步)

事件监听处理接口:

动作监听处理接口:ActionListener

自己实现一个监听处理类

1.创建一个新的类,实现ActionListener接口

public class ➕监听处理类类名➕implements ActionListener {}

public class CuUI implements ActionListener {}

2.将这个接口的方法复制到类中并把小括号改为大括号

public void actionPerformed(ActionEvent e){}

3.在方法中写一段按下按钮后执行的代码(即在大括号中填写执行的代码)

JTextField num; public void actionPerformed(ActionEvent e) { System.out.println("点击了按钮"); String ac=e.getActionCommand(); System.out.println("点击了"+ac); if(ac.equals("+")||ac.equals("-")||ac.equals("×")||ac.equals("÷")){ System.out.println("点击了运算符"); }else if(ac.equals("C")){ num.setText(""); }else if(ac.equals("=")){ System.out.println("结果是:"); }else{ System.out.println("点击了数字:"+ac); String end=num.getText(); num.setText(end+ac); } }

使用写好的监听处理类:

1.回到创建按钮对象的位置,创建一个监听处理类的对象

监听处理类类名 对象名=new 监听处理类类名();

CuUI cu=new CuUI();

2.使用按钮对象的addActionListener方法,添加这个新创建的对象,完成绑定

按钮对象名.addActionListener(新创建对象名);

bt.addActionListener(cu);

注意:ActionEvent e是动作事件参数记录你点击按钮时的相关信息

创建多个按钮,使用同一个监听处理对象监听

String 对象名=e.getActionCommand();

String ac=e.getActionCommand();

获取当前输入框的文本

String 类名=使用输入框对象名(JTextField/JPassworldField类的对象名) ➕getText();

num.setText(end+ac);

在监听处理类中声明这几个输入框的对象变量名

JTextField num;

回到创建监听处理类的对象的地方,使用对象变量名调用这几个输入框的对象变量名使其初始化

cu.num=num;

登陆注册判断(条件语句中包含条件语句)

若点击登陆,则...(若点击的变量名equals("登陆"))

若点击注册,则...(若点击的变量名equals("注册"))

等于号用equals

以计算器为例

创建监听处理类

import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class CuUI implements ActionListener { JTextField num; public void actionPerformed(ActionEvent e) { System.out.println("点击了按钮"); String ac=e.getActionCommand(); System.out.println("点击了"+ac); if(ac.equals("+")||ac.equals("-")||ac.equals("×")||ac.equals("÷")){ System.out.println("点击了运算符"); }else if(ac.equals("C")){ num.setText(""); }else if(ac.equals("=")){ System.out.println("结果是:"); }else{ System.out.println("点击了数字:"+ac); String end=num.getText(); num.setText(end+ac); } } }

创建计算器类

import javax.swing.*; import java.awt.*; public class NcalculationUI { public void showUI(){ String[]texts={ "7","8","9","÷", "4","5","6","+", "1","2","3","-", "0","C","×","=" }; CuUI cu=new CuUI(); JFrame jf=new JFrame(); jf.setTitle("计算器"); jf.setLocation(400,300); jf.setDefaultCloseOperation(3); jf.setSize(400,300); JTextField num=new JTextField(); Dimension dim=new Dimension(355,40); num.setPreferredSize(dim); jf.add(num); FlowLayout flow=new FlowLayout(); jf.setLayout(flow); cu.num=num; for(int i=0;i<texts.length;i++){ JButton bt=new JButton(texts[i]); Dimension dim1=new Dimension(85,40); Color co=new Color(74, 236, 189); bt.addActionListener(cu); bt.setBackground(co); bt.setPreferredSize(dim1); jf.add(bt); jf.setVisible(true); } } static void main(){ NcalculationUI nc=new NcalculationUI(); nc.showUI(); } }

结果

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询