有没有想过这样的一些问题?为什么点击界面,会有相应的反应?输入指定内容,会出现相对应的内容?本文将通过 Java 来讲解 Java 中的事件监听机制来解答这些问题,以下是详情内容。
事件监听机制的定义
Java事件监听机制在图形界面编程的时候应用的比较多。我们会时常对界面进行一系列的操作,比如在输入框输入内容、点击登录注册按钮等等,着一些操作都被称之为事件。当进行这些操作的时候,程序就会采取相应的措施来相应这些事件。
1.事件源对象
(1)什么内容可以成为事件源对象?
只有容器组件和元素组件可以成为事件源对象。
(2)怎么确定界面上谁是事件源对象?
当你的动作发生在哪一个组件上,那么这个组件就是事件源对象。
2、事件监听方法
(1)事件监听方法由事件源对象提供。
(2)事件监听方法捕获事件源对象上面的动作。如果有动作发生,则方法捕获动作,收集源对象的信息和动作信息,然后把这些信息交给事件接口的对象进行处理。
3、事件接口(处理类)
事件接口对象拿到事件监听方法提供的信息后,会根据这些信息,去调用相应的事件处理方法。
接下来我们通过一个简单的实例代码感受一下:
思路
1、构建一个窗体,再装上一个start
按钮。
2、定义LoginListener
事件处理类。这个类继承了ActionListener
动作事件接口,需要重写接口里面的抽象方法。
3、实例化LoginListener
事件处理对象。
4、给事件处理类对象添加动作监听方法,并指定事件处理类对象。
代码实例:
//第一步就简单地构造一个窗体
package Login20190318;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import javax.swing.JButton;
import javax.swing.JFrame;
//Draw类继承JFrame类 相当于Draw类就是JFrame类 直接调用JFram类中的属性和方法
public class Draw extends JFrame
{
//入口主函数
public void initUI()
{
this.setSize(1500,600);
FlowLayout flowlayout=new FlowLayout(FlowLayout.CENTER,5,5);
this.setLayout(flowlayout);
JButton button=new JButton("Start");
this.add(button);
this.setVisible(true);
//使窗体获得绘图板权限
Graphics graphics=this.getGraphics();
//实例化监听方法类 并传入参数
DrawLis drawlis=new DrawLis(graphics);
//使按钮button调用监听方法
button.addActionListener(drawlis);
}
public static void main(String[] args)
{
//实例化Draw类并调用入口函数
Draw draw=new Draw();
draw.initUI();
}
}
//定义事件监听方法的类
package Login20190318;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import java.awt.Graphics;
//实现监听接口
public class DrawLis implements ActionListener
{
private Graphics g;
//构造方法用于传参
public DrawLis(Graphics g)
{
this.g=g;
}
//定义监听方法,画一个椭圆
public void actionPerformed(ActionEvent e)
{
Random random = new Random();
int x=random.nextInt(1600);
int y=random.nextInt(1600);
g.fillOval(x,y,60,70);
}
}
初始面板
点击事件后,面板上出现一个黑色的球。
总结
以上就是Java中的事件监听机制简要概述的全部内容,想要了解更多关于Java的知识内容,请关注W3Cschool以往的文章或者继续浏览接下来的内容,请多多关注和支持我们。