Java事件适配器的使用简单讲解

我的Java学习之路笔记(我会将各个知识点的知识分别独立出来,可以根据自己所需,看相关的知识点)

注:该知识点是无序的!!!

(本文章是我自学Java对一下知识点的理解,放在这里主要是为了记录自己的笔记,以及分享我的观点,如有错误理解,或更好的理解,请指出!)

事件适配器(Adapter)的用法。

(适配器较多,只用一个例子进行讲解)
首先我们先对适配器有一定的认识:

/*
事件适配器(Adapter): 1.(适配器使用之前背景)当我们操作的一些列操作,产生的事件,我们要对这些事件作出反应
因此我们要为一些组件注册监听程序,然后去实现对应的接口方法例如:MouseEvent对应的接口为MouseListener,和MouseMotionListener两个接口

2.(为何要使用适配器)但每一个接口中都有很多的抽象方法,但我们只想实现某一个事件的响应,这时候如果我们每一个方法都自己去实现就太麻烦了!!
为此我们可以让定义实现接口的类去继承该接口对应的适配器,注:(类的继承只能单继承)

3:(适配器的内容): 每个接口对应的适配器类内都已经将接口全部实现,只是实现的方法的方法体都为空,(无实际内容)

  1. (用户使用适配器的具体实现): 可以对适配器中感兴趣的方法进行重写,让其变得具体,有实际意义

5.相关的测试在TestAdapter类中

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

// 鼠标(mouse)一系列操作,引发 MouseEvent 已经对应的两个接口 MouseListener,MouseMotionListener
public class TestAdapter extends MouseAdapter implements MouseMotionListener {
    private JFrame frame;
    private JTextField tf;

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

    //JTextField类继承了
    public void go() {
        frame = new JFrame("Two Listener example!");
        Container contentPane = frame.getContentPane();
        contentPane.add(new Label("Click and drag the mouse "), BorderLayout.NORTH);// 添加标签对象在北部
        tf = new JTextField(30);// (待考察)
        contentPane.add(tf, BorderLayout.SOUTH);

        //注册监听程序,这里可以传入 this的原因是因为当前类已经实现以下两个接口的方法 ,可以称为监听程序的类
        frame.addMouseMotionListener(this);  //--------对应的接口 MouseMotionListener
        frame.addMouseListener(this);  //---------对应的接口 MouseListener

        frame.setSize(300, 300);// 设置窗口大小
        frame.setVisible(true);// 显示内容


    }

    //-----------------MouseListener(接口)中的(五个)方法只重写感兴趣的两个
    // -------------------- 简单说 seText(String s) 该方法为父类(JTextComponent)可以改变显示的文本
    public void mouseEntered(MouseEvent e) { // 鼠标进入窗口反应方法
        String s = "The mouse Entered";
        tf.setText(s);

    }

    public void mouseExited(MouseEvent e) {   // 鼠标退出窗口反应方法
        String s = "The mouse has left the building";
        tf.setText(s);
    }

    // ------------------MouseMotionListener (接口) (中两个抽象方法)---------------------
    @Override
    public void mouseDragged(MouseEvent e) {
        String s="Mouse dragging:X="+e.getX()+",Y="+e.getY();// 获得取坐标
        tf.setText(s);

    }

    @Override
    public void mouseMoved(MouseEvent e) {

    }
}

  以上就是对事件适配器的使用,如有所帮助,小赞可给予我莫大的动力!!!!
  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值