Java中的应用-AWT事件适配器

原创 2013年12月04日 10:07:37

文章摘抄于http://book.51cto.com/art/200912/166991.htm

 

第一层是EventListener顶层事件接口类,它只是定义了一个接口,没有包含任何接口函数。
第二层是AWT的事件监听器接口(以Listener为结尾),每一个监听器接口对应一种窗口事件,其中定义了多个事件处理函数。
第三层是AWT的事件适配器抽象类(以Adapter为结尾),它们分别为对应的监听器接口提供了默认的函数实现。

 

目的,这一特性特别适合于Java AWT中的事件处理模式。对于定义的事件监听器接口,它可能包含多个事件处理函数,但在使用时我们往往只需要关注其中的某一种事件,此时就可以使用抽象化适配来将事件监听器接口进行抽象化,给出每一个接口函数的默认实现,这样在需要使用时只需要重写自己需要的函数即可

 

package java.awt.event;

import java.util.EventListener;

public interface MouseListener extends EventListener {
	/** * 鼠标单击事件 */
	public void mouseClicked(MouseEvent e);

	/** * 鼠标按下事件 */
	public void mousePressed(MouseEvent e);

	/** * 鼠标释放事件 */
	public void mouseReleased(MouseEvent e);

	/** * 鼠标进入事件 */
	public void mouseEntered(MouseEvent e);

	/** * 鼠标退出事件 */
	public void mouseExited(MouseEvent e);
}

 

当我们要使用该接口编写鼠标事件处理代码时,就需要实现该接口,并实现5个事件函数 

 

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class MyMouseListener implements MouseListener {
	@Override
	public void mouseClicked(MouseEvent arg0) {
		System.out.println("鼠标单击事件");
	}

	@Override
	public void mousePressed(MouseEvent arg0) {
		System.out.println("鼠标按下事件");
	}

	@Override
	public void mouseReleased(MouseEvent arg0) {
		System.out.println("鼠标释放事件");
	}

	@Override
	public void mouseEntered(MouseEvent arg0) {
		System.out.println("鼠标进入事件");
	}

	@Override
	public void mouseExited(MouseEvent arg0) {
		System.out.println("鼠标退出事件");
	}
}

 

 

然而,我们可能只需要处理其中的某一个事件,却不得不编写所有的接口函数,此时就可以使用适配器类MouseAdapter了。该适配器实现了3个鼠标相关的事件接口,并为这些接口中的所有函数都提供了默认的实现,这些实现的代码为空,表示什么也不做

 

package java.awt.event;

public abstract class MouseAdapter implements MouseListener,
		MouseWheelListener, MouseMotionListener {
	public void mouseClicked(MouseEvent e) {
	}

	public void mousePressed(MouseEvent e) {
	}

	public void mouseReleased(MouseEvent e) {
	}

	public void mouseEntered(MouseEvent e) {
	}

	public void mouseExited(MouseEvent e) {
	}

	public void mouseWheelMoved(MouseWheelEvent e) {
	}

	public void mouseDragged(MouseEvent e) {
	}

	public void mouseMoved(MouseEvent e) {
	}
}

 

此时如果我们只希望处理鼠标单击事件,只需要继承适配器MouseAdapter,并重写单击事件函数mouseClicked()即可

 

import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;

public class MyMouseClickedListener extends MouseAdapter {
	@Override
	public void mouseClicked(MouseEvent arg0) {
		System.out.println("鼠标单击事件");
	}
}

 

由此可见,通过使用事件的适配器,可以让我们的代码只关注自己的事件,而不必造成不必要的代码浪费。这就是适配器模式在事件处理中的应用。

 

Java--AWT事件处理机制

本文部分内容参考:http://bdxnote.blog.163.com/blog/static/844423520134154319780/; 1.事件处理机制:GUI程序和用户操作的交互功能; ...
  • nuisthou
  • nuisthou
  • 2016年05月27日 20:50
  • 1376

Java AWT事件适配器

事件适配器是监听器接口的空实现——事件适配器实现了监听器接口,并为该接口里的每个方法都提供了实现,这种实现是一种空实现(方法体内没有任何代码的实现)。当需要创建监听器时,可以通过继承事件适配器,而不是...
  • moncheri78
  • moncheri78
  • 2014年07月02日 10:49
  • 387

Java事件处理机制和适配器

最重要的是理解事件源,监视器,处理事件的接口的概念。 1.事件源:是能够产生时间的对象都可以叫事件源,比如文本框,按钮,下拉列表之类的组件。2.监视器:事件源要产生事件,必须要有什么东西去监视它,以...
  • tuke_tuke
  • tuke_tuke
  • 2015年07月21日 13:17
  • 1484

适配器模式与Java应用

适配器模式与Java应用​ 在设计模式中或者说在很多编程场景下经常会使用到适配器,有心或无意。顾名思义,适配器就是将一个类的接口适配(包装/转换)成客户(调用者)希望的另一个接口。适配模式又可以细...
  • jackshiny
  • jackshiny
  • 2016年10月06日 13:07
  • 2346

Java笔记007_监听器和适配器的区别

监听器和适配器:Java图形用户界面(GUI,Graphics User interface)设计的抽象窗口工具集(AWT,Abstract Window Toolkit)的两个重要概念,他们都在ja...
  • hbgCSDN
  • hbgCSDN
  • 2014年11月24日 08:54
  • 1614

Java学习笔记(AWT组件 之 按钮)

没什么说的,就是当按钮被按下后,会产生ActionEvent 事件,需要用 ActionListener 接口进行监听和处理事件。 下面是一个菜数字大小的游戏 package frame; imp...
  • ygqwan
  • ygqwan
  • 2013年05月16日 23:36
  • 2624

AWT事件模型总结

一、常用术语 GUI(Graphics user interface)图形用户接口 CLI (Command line user interface)命令行用户接口 Java为GUI提供的类。 jav...
  • renpingqing
  • renpingqing
  • 2013年07月27日 15:33
  • 2521

JAVA GUI(键盘事件 和 鼠标事件)

//仅作为学习笔记 //GUI 鼠标事件 和 键盘事件 import java.awt.*; import java.awt.event.*; class MouseAndKeyEven...
  • wu_lai_314
  • wu_lai_314
  • 2013年04月07日 20:45
  • 4974

java awt中文方框出乱码

java awt中文方框出乱码
  • wzhworld
  • wzhworld
  • 2017年01月25日 15:22
  • 886

Java设计模式之适配器模式(Adapter)在Android中的应用

1.概念:将内容与控件相分离的一种设计(公式) ,达到内容灵活显示的目的。2.适配器模式主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。单独讲解接口的适配器模式a. 接口的适配器模式...
  • huang_xiao_yu
  • huang_xiao_yu
  • 2015年11月01日 00:33
  • 1099
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中的应用-AWT事件适配器
举报原因:
原因补充:

(最多只允许输入30个字)