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. 命令交互方式 图书管理系统 ...
随机推荐
- 关于shortcut icon和icon代码的区别介绍
语句一:<link rel="shortcut icon" href="favicon.ico" /> 语句二:<link rel=" ...
- IOS-视频
一.简介 iOS提供了MPMoviePlayerController.MPMoviePlayerViewController两个类,可以用来轻松播放视频和网络流媒体\网络音频 提示:网络音频同样使用此 ...
- 【spark】持久化
Spark RDD 是惰性求值的. 如果简单地对RDD 调用行动操作,Spark 每次都会重算RDD 以及它的所有依赖.这在迭代算法中消耗格外大. 换句话来说就是 当DAG图遇到转化操作的时候是不求值 ...
- 【ccf 2017/12/4】行车路线(dijkstra变形)
问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和小道.大道比较好走,每走1公里小明会增加1的疲劳度.小道不好走,如果连续走小道,小明的疲劳值会快速增加,连续走s公 ...
- Django的 CBV和FBV
FBV CBV 回顾多重继承和Mixin 回到顶部 FBV FBV(function base views) 就是在视图里使用函数处理请求. 在之前django的学习中,我们一直使用的是这种方式,所以 ...
- requestAnimationFrame 与 cancelAnimationFrame
API接口 Window对象定义了以下两个接口: partial interface Window { long requestAnimationFrame(FrameRequestCallback ...
- [CF662C]Binary Table
luogu 题意 你有一个\(n*m\)的\(01\)矩阵.你可以把任意一行或者一列的\(01\)取反.求矩阵中最少的\(1\)的数量. \(n\le20,m\le10^5\) sol 很自然地有一个 ...
- 洛谷 P1561 [USACO12JAN]爬山Mountain Climbing
传送门 题目大意: n头牛,上山时间为u(i),下山为d(i). 要求每一时刻最多只有一头牛上山,一头牛下山. 问每头牛都上下山后花费最少时间. 题解:贪心 推了推样例,发现上山时间一定,那找个下山最 ...
- C#防止程序多次运行
经过我的测试,还比较好用,但是有个问题,如果不注销,用另一个用户进入,则程序不能判断出已运行.所以只限于用在单用户环境,还是不太完美. class Program { [STAThread] stat ...
- 【转】Python自动化测试 (一) Eclipse+Pydev 搭建开发环境
原文网址:http://www.cnblogs.com/TankXiao/archive/2013/05/29/3033640.html C#之所以容易让人感兴趣,是因为安装完Visual Studi ...