[img][/img]<div class="iteye-blog-content-contain" style="font-size: 14px"></div>
?
?
?
?
一.事件机制的组成
2.事件监听方法
3.事件处理类
1.1.事件源:一系列的可以接受相应动作的组件
例如:按钮,标签,面板,画布等等。。。
Q; 那我是不是可以说任何可以看到的对象都可以作为事件源呢?
A: 答案是肯定的。everything is ok!
1.2事件监听器方法:用来接收(获取)相应动作的方法
例如:动作监听器方法(addActionListener(ActionListener al))
按钮,标签,...单击,输入框中的回车操作
鼠标监听器方法(addMouseListener(MouseListener ml))
事件源上触发鼠标的按下,松开,单击,进入,离开的操作
鼠标移动监听器方法(addMouseMotionListene (MouseMotionListener mm))
事件源上触发鼠标移动或者鼠标按下拖动操作
键盘监听器方法(addKeyListener(KeyListener kl))
在事件源上按下键盘操作时触发该方法
1.3事件处理类:用来处理获取监听后的一系列处理。
首先,自定义一个类实现也可以说继承事件接口,也可也继承类(但是此类应该是接口的子类),当然此类中必须实现相应的处理方法。
比如:我要监听一个按钮(事件源),判断按下后我要对一个画布进行处理,并把画布的对象传给事件处理类,此时我自定义的类可以继承接口(MouseListener)也可以继承MouseListener 的子类MouseAdapter
五子棋的监听部分代码
import java.awt.Color; import java.awt.Graphics; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JOptionPane; public class FivechessListener extends MouseAdapter{ private Graphics g; private boolean flag = false; public FivechessListener(Graphics g) { // TODO Auto-generated constructor stub this.g = g; } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub int x = e.getX(); int y = e.getY(); //计算行列及余数,行列的余数大于2/3size,则列行加1 int X = (x - Digt.X) % Digt.size; int column = (x - Digt.X) / Digt.size; int Y = (y - Digt.Y) % Digt.size; int row = (y - Digt.X) / Digt.size; if(X> Digt.size/3*2){ column++; } if(Y> Digt.size/3*2){ row++; } //获取当前棋子的左上角坐标 int x1 = Digt.X + column*Digt.size - Digt.size/2; int y1 = Digt.Y + row*Digt.size - Digt.size/2; //黑白交替 if(Digt.array[row][column]==0){ if(flag == false){ g.setColor(Color.black); g.fillOval(x1,y1,Digt.size,Digt.size); flag = true; Digt.array[row][column]=-1; } else{ g.setColor(Color.white); g.fillOval(x1,y1,Digt.size,Digt.size); flag = false; Digt.array[row][column]=-1; } } //判断输赢 if(Winchess.is_winorfalse(row,column)){ if(g.getColor()==Color.black){ JOptionPane.showMessageDialog(null, "黑棋胜利"); }else { JOptionPane.showMessageDialog(null, "白棋胜利"); } } System.out.println("row = " + row + "\t column=" + column); } }
通过上面的比较抽象的描述如果你还是不太理解监听机制,我就用吃饭来类比一下喽!
首先,事件源我可以看做我们的肚子或者胃,当我们消耗卡路里后,我们一般都会有饥饿的感觉,而这种感觉会通过神经末梢(可以看成一种一种媒介)的传递会刺激我们的大脑,并促使我们的大脑发出命令,对我们的肢体进行控制,也就我饿了,到时间我们该吃饭了,然后我们就会屁颠屁颠的去食堂大吃一顿。
这里的监听方法可以看成是神经,然后大脑即使我们继承的父类,大脑里专门管饥饿的脑区就是我们的实体类(继承大脑这个接口),然后大脑会发出命令,我们行动起来这个过程就是我们实现的方法。相应的命令就是监听方法传过来的参数(对应的上面的代码即是画布对象)。
相关推荐
【《一件小事》阅读答案】阅读题一件小事答案.docx
这篇文章是关于一篇短文《一件小事》的阅读理解答案,主要讲述了作者与一对母子的互动,揭示了人性的善良和诚实。以下是该文涉及的知识点: 1. **人物态度变化**:故事一开始,作者对穿着破旧的母子俩心生厌恶,...
"《一件小事》作文教学课件.ppt" 本资源摘要信息是关于一件小事的作文教学课件,通过对《一件小事》的分析和指导,帮助学生写出一篇优秀的作文。下面是相关知识点的总结: 一、写作指导 * 写作前的准备:在写作前...
【标题】:“一件小事与管理资料.pdf” 【描述】:文档通过讲述一件小事,即公司领导在食堂门口捡起地上的纸团,引出了管理中的六个关键角色,并以此类比公司的内部管理问题。 【标签】:企业管理、问题解决、责任...
【恋爱这件小事】是关于情感经历的探讨,主要聚焦在初恋这一特殊的情感阶段。初恋,正如标题所言,虽然在人生的整个历程中看似微不足道,但它的影响力却深远且独特。文章通过引用电影《秒速5厘米》中的场景,阐述了...
环保行业:一件小事?垃圾分类的产业大机遇.pdf
【标题】和【描述】提到的是一个Word文档的标题,这个文档包含15篇以"那件小事激励着我"为主题的作文。从【标签】"技术"来看,可能原本期望的内容与IT技术相关,但实际提供的信息是关于个人成长和情感体验的作文。...
【培训SOP】培训项目运营SOP-6大模块,53件小事,20张表单.xls
《一件小事》是鲁迅先生的一篇短篇作品,它描绘了一个看似平常却蕴含深刻道理的故事。这篇文章通过鲁迅自己的视角,讲述了他在北京街头遇到的一次意外事件,即人力车夫救助一位衣衫破烂的老妇人的行为,从而引发了他...
他们都遭遇了挫折,但通过这些看似微不足道的事件,他们获得了宝贵的教训,激励自己变得更为坚强。 第一个故事是作者王华鹏在童年时期与父亲在荒僻小道上的经历。在黑暗中失去了父亲的陪伴,作者感到恐慌,但他回忆...
在《一件小事》中,鲁迅通过一件平凡的事件揭示了人性的伟大。 2. 事件描述:文章讲述了鲁迅先生遇到的一位车夫在遇到一位老妇人摔倒的情况下,不顾鲁迅的劝阻,坚持去帮助她,表现出高尚的品质。这一行为触动了...
这个事件让作者深感震撼,认识到这位妇女的行为远胜于自己的鄙视和同情,她用实际行动诠释了无私的爱,使作者反思自己的价值观。 第二个故事发生在寂静的黄昏,作者放学回家发现忘记带钥匙,正陷入困境时,一位陌生...
这篇文档是鲁迅先生的一篇文章《一件小事》,讲述了他在民国六年冬天经历的一次偶遇。文章通过叙述一件看似微不足道的小事,揭示出人性的光辉和自我反省的重要性。 故事发生在寒冷的冬天,鲁迅先生因为生计出门,...
一件小事的震动PPT学习教案.pptx
《一件小事》是鲁迅先生的一篇短篇作品,通过讲述主人公在民国时期遇到的一次事件,揭示了人性中的善良与尊重。这篇故事中,车夫对一位可能碰瓷的老妇人展现出的关怀与同情,与鲁迅先生自身的态度形成了鲜明对比,...
整理了《架构师应该掌握的97件小事》这本手的全部思维,形成脑图。目前还有一些思维需要整理,欢迎大家指针
一件小事鲁迅读后感参考.doc
这篇文档标题为“难忘的一件小事作文.doc”,描述同样如此,标签为“范文”,内容讲述的是作者在班级中的一次值日经历,从中感悟到深刻的道理。文章通过描绘班长的行为,展现了以身作则和为集体着想的重要性,强调了...
关于让自己变得更幸福的20件小事,文章从不同的生活细节出发,阐述了一系列易于实践的建议,旨在帮助人们通过简单的日常行为来提升幸福感。以下是对这20件小事的详细解释和它们背后的知识点: 1. 面带微笑:微笑是...
在这个“关于梦想这件小事”的项目中,我们可以深入探讨网页设计的基本概念和实践技巧。 首先,我们要明白网页设计的核心目标是创造一个既美观又功能齐全的在线平台,能够有效地传达信息并提供良好的用户浏览体验。...