java事件模型

事件模型相关概念

  事件:描述发生了什么的对象。

           存在各种不同类型的事件类用来描述各种类型的用户交互。

  事件源:事件的产生器。

  事件处理器:接收事件、解释事件并处理用户交互的方法。

几类具有典型代表意义的事件

  MouseEvent,鼠标事件,鼠标按下、释放、点击等。

  WindowEvent,窗口事件,点击关闭按钮,窗口得到与失去焦点,窗口最小化等。

  ActionEvent,动作事件,不代表具体的动作,是一种语义。如按钮或菜单被鼠标单击,单行文本框中按下回车键等都可以看做是ActionEvent事件。

  如果用户的一个动作导致了某个组件最基本的动作发生了,这就是ActionEvent事件。

  对于每类事件,都会有一个接口(接口一般叫xxxListener),这个接口要求定义一个或多个方法。想接收这个事件的类必须实现这个接口,当发生这些事件时,就会调用这些方法。

  以下为例子:

            1)为button添加了也就是ActionEvent(编写MyButtonListener类)  

            2)为界面添加了鼠标事件MouseEvent

            3)为界面添加了WindowEvent(编写MyWindowListener类)

import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
/**
 * 文件名:ListenerTest
 * 创建者:xiebaoming
 * 创建时间:2021/12/7  22:02
 * 描述:TODO
 */
public class ListenerTest implements MouseListener {
    private JFrame frame;
    private Button button;


    void go(){
        frame = new JFrame();

        //加一个按钮
        button = new Button("ButtonListener");
        button.setBounds(10,25,7,7);
        button.addActionListener(new MyButtonListener());  //给界面的这个鼠标控件加上ActionEvent
        frame.add(button,BorderLayout.WEST);


        frame.setTitle("ListenerTest");
        frame.setSize(800,500);

        //给界面加上鼠标监听事件MouseEvent
        frame.addMouseListener(this);

        //给界面加上window监听事件WindowEvent
        frame.addWindowListener(new MyWindowListener());

        frame.setVisible(true);
    }

    public static void main(String[] args) {
         ListenerTest listenerTest = new ListenerTest();
         listenerTest.go();
    }

    @Override
    public void mouseClicked(MouseEvent e) {

    }

    @Override
    public void mousePressed(MouseEvent e) {
        System.out.println("界面已被点击");
        System.out.println("坐标为:("+e.getX()+","+e.getY()+")");
        //JOptionPane.showMessageDialog(this.frame,"界面已被点击");
    }

    @Override
    public void mouseReleased(MouseEvent e) {

    }

    @Override
    public void mouseEntered(MouseEvent e) {

    }

    @Override
    public void mouseExited(MouseEvent e) {

    }
}


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
 * 文件名:MyButtonListener
 * 创建者:xiebaoming
 * 创建时间:2021/12/7  22:32
 * 描述:按钮事件类
 */
public class MyButtonListener implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("按钮被点击");
    }
}



import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
/**
 * 文件名:MyWindowListener
 * 创建者:xiebaoming
 * 创建时间:2021/12/7  22:45
 * 描述:窗口事件类
 */
public class MyWindowListener implements WindowListener {
    @Override
    public void windowOpened(WindowEvent e) {

    }

    @Override
    public void windowClosing(WindowEvent e) {
        System.out.println("windowClosing");
        // 退出
        System.exit(0);

    }

    @Override
    public void windowClosed(WindowEvent e) {

    }

    @Override
    public void windowIconified(WindowEvent e) {

    }

    @Override
    public void windowDeiconified(WindowEvent e) {

    }

    @Override
    public void windowActivated(WindowEvent e) {

    }

    @Override
    public void windowDeactivated(WindowEvent e) {

    }
}

     


 欢迎微信搜索个人公众号:楠哥毕设帮

提供个人二开项目源码、部署讲解、论文指导~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值