JAVA事件监听机制的实现
今天学习了java的事件编程机制,略有体会,先在此记下心得。
第一,首先明确几个概念。
事件源:一个产生或者触发事件的对象。
事件:承载事件源状态改变时的信息对象。
事件监听器接口:实际上就是一个类,该类实现了某个事件监听器接口。
具体来说,就是事件源状态发生变化,比如说是发生点击。事件源状态发生变化后要将状态变化通过“事件”这个载体,传递到相应的事件监听接口进行处理(大概是这样理解吧)。因此,为了能够实现事件的监听,有以下几个步骤需要实现。
一个类实现事件监听的步骤:
/*
* 实现java事件监听机制
*/
package com.listener;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*; public class Demo9_5 extends JFrame
{
//定义组件
JButton jb1 ,jb2 ;
MyPanel jp1 ;
public static void main(String[] args)
{
Demo9_5 demo9_5 = new Demo9_5(); }
public Demo9_5()
{
//创建组件
jb1 = new JButton( "黑色");
jb2 = new JButton( "红色");
//添加组件
jp1 = new MyPanel(); this .setLayout( new GridLayout(3,1)); //设置布局样式
this .add(jb1 );
this .add(jp1 );
this .add(jb2 ); //注册监听!
this .addMouseListener(jp1 ); //显示窗体
this .setSize(400,300);
this .setVisible( true);
this .setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);
}
} class MyPanel extends JPanel implements MouseListener
{
//画出背景颜色
public void paint(Graphics g)
{
super .paint(g);
//获取当前 mypanel的宽和高
int w,h;
w = this .getWidth();
h = this .getHeight();
g.fillRect(0, 0, w, h);
} @Override
public void mouseClicked(MouseEvent e)
{
// TODO Auto-generated method stub
System. out .println("鼠标点击了MyPanel" );
} @Override
public void mouseEntered(MouseEvent e)
{
// TODO Auto-generated method stub } @Override
public void mouseExited(MouseEvent e)
{
// TODO Auto-generated method stub } @Override
public void mousePressed(MouseEvent e)
{
// TODO Auto-generated method stub } @Override
public void mouseReleased(MouseEvent e)
{
// TODO Auto-generated method stub }
}
JAVA事件监听机制的实现的更多相关文章
- java事件监听机制
1.简单的事件监听 package demo2; /* * java事件监听机制 */ import java.awt.*; import javax.swing.*; import java.awt ...
- java事件监听机制2
今天早上的两点收获: 1.addActionListener(其中的setActionCommand函数就是要对对象进行唯一性的标记,便于消息传来后进行处理.理论上actionlistener可以全部 ...
- Java事件监听机制与观察者设计模式
一. Java事件监听机制 1. 事件监听三要素: 事件源,事件对象,事件监听器 2. 三要素之间的关系:事件源注册事件监听器后,当事件源上发生某个动作时,事件源就会调用事件监听的一个方法,并将事件对 ...
- JAVA事件监听机制学习
//事件监听机制 import java.awt.*; import java.awt.event.*; public class TestEvent { public static void mai ...
- JAVA事件监听机制与实现
事件监听机制的实现:参考图:事件模型_ActionEvent 为了节省资源,系统无法对某个事件进行实时的监听.故实现的机制是当发生某个事件后,处理代码将被自动运行,类似钩子一般.(回调函数) 事件有许 ...
- java 事件监听机制组成
事件源(组件) 事件(Event) 监听器(Listener) 事件处理(引发事件后处理方式) 事件监听机制流程图 务必记牢: 确定事件源(容器或组件) 通过事件源对象的addXXXListener( ...
- java事件监听机制(自定义事件)
java中的事件机制的参与者有3种角色: 1.event object:事件状态对象,用于listener的相应的方法之中作为参数,一般存在与listerner的方法之中 2.event source ...
- 【转】java事件监听机制
java中的事件机制的参与者有3种角色: 1.event object:事件状态对象,用于listener的相应的方法之中作为参数,一般存在与listerner的方法之中 2.event source ...
- java Gui编程 事件监听机制
1. GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在DOS命令行中通过javac java命令启动程序. 软件的交互的方式: 1. 命令交互方式 图书管理系统 ...
随机推荐
- 51nod 1270 dp
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1270 简单的线性dp,最近狂刷水题真的是...药丸 差值最大得话要么是峰 ...
- Doxygen简介
(转自:http://www.cnblogs.com/liuliunumberone/archive/2012/04/10/2441391.html) 一.什么是Doxygen? Doxygen 是一 ...
- [eShopOnContainers 学习系列] - 00 - 开发环境需求
开发环境需求 https://github.com/dotnet-architecture/eShopOnContainers/wiki/00.-Dev-machine-requirements 我的 ...
- LeetCode OJ:Divide Two Integers(两数相除)
Divide two integers without using multiplication, division and mod operator. If it is overflow, retu ...
- UI-UIButton、UILable、UITextField总结
UIButton按钮====================================================== 第一.UIButton的定义 UIButton *button=[[U ...
- Android应用接入第三方登陆之新浪微博
众所周知,移动互联网在这几年经历了蓬勃发展,到目前为止,移动互联网发展仍然很强劲.其中移动设备系统以android占据主导地位,之前是加拿大的黑莓系统占据主导,但后来随着android系统的问世,黑莓 ...
- spring 和springmvc 在 web.xml中的配置
(1)问题:如何在Web项目中配置Spring的IoC容器? 答:如果需要在Web项目中使用Spring的IoC容器,可以在Web项目配置文件web.xml中做出如下配置: <!-- Sprin ...
- Python之json文件
{ "people":[ { "firstName": "Brett", "lastName":"McLaug ...
- 浅谈如何在SQL Server中生成脚本
在生成脚本过程中,有很多参数可以选择,合理的配置这些参数,可以让我们很方便的按照我们的期望生成脚本. 生成脚本的一些选项,如下图: 我这里是SQL 2005 的选项, SQL 2008 的选项跟这个稍 ...
- CentOS7 配置光盘iso镜像为本地yum源
因为系统使用的最小化安装,所以很多软件没有安装上,又无法上网,为了方便,所以直接将上传的iso镜像直接作为yum源. 我已经将光盘的iso镜像上传至服务器. 接下来就是将iso的光盘镜像进行挂载了 m ...