[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. **人物态度变化**:故事一开始,作者对穿着破旧的母子俩心生厌恶,...
【标题】:“一件小事与管理资料.pdf” 【描述】:文档通过讲述一件小事,即公司领导在食堂门口捡起地上的纸团,引出了管理中的六个关键角色,并以此类比公司的内部管理问题。 【标签】:企业管理、问题解决、责任...
在写作教学中,一件小事的选题往往能够激发学生对日常生活的观察与思考,引导学生用细腻的笔触书写生活中的点滴。《一件小事》作文教学课件.ppt旨在通过一系列的教学活动和写作指导,帮助学生掌握写作技巧,提高写作...
电影《秒速5厘米》以其独特的艺术手法,捕捉了初恋的微妙情绪和深刻记忆,而《初恋这件小事》则展示了暗恋的浪漫和纯粹的爱情。通过这两部影片,我们可以看到初恋不仅是一个情感阶段,更是一次关于成长与自我发现的...
环保行业:一件小事?垃圾分类的产业大机遇.pdf
【标题】和【描述】提到的是一个Word文档的标题,这个文档包含15篇以"那件小事激励着我"为主题的作文。从【标签】"技术"来看,可能原本期望的内容与IT技术相关,但实际提供的信息是关于个人成长和情感体验的作文。...
【培训SOP】培训项目运营SOP-6大模块,53件小事,20张表单.xls
《2021-2022年收藏的精品资料作文那件小事激励了我精选.doc》记录了这样一些小故事,它们也许并不轰轰烈烈,但其间的感悟和力量却能激发我们不断前行。 文中,作者王华鹏回忆起童年的一个夜晚,他在一条荒僻的小道...
《一件小事》是鲁迅先生的一篇短篇作品,它描绘了一个看似平常却蕴含深刻道理的故事。这篇文章通过鲁迅自己的视角,讲述了他在北京街头遇到的一次意外事件,即人力车夫救助一位衣衫破烂的老妇人的行为,从而引发了他...
综上所述,《一件小事》以一件看似平凡的小事为载体,透过鲁迅的笔触,展示了深刻的社会意义和人性光辉。它不仅让我们看到了鲁迅的写作特点,更启发了我们对于自我认知的深入反思,以及对于社会责任感的重新审视。...
这篇文档是鲁迅先生的一篇文章《一件小事》,讲述了他在民国六年冬天经历的一次偶遇。文章通过叙述一件看似微不足道的小事,揭示出人性的光辉和自我反省的重要性。 故事发生在寒冷的冬天,鲁迅先生因为生计出门,...
一件小事的震动PPT学习教案.pptx
《一件小事》是鲁迅先生的一篇短篇作品,通过讲述主人公在民国时期遇到的一次事件,揭示了人性中的善良与尊重。这篇故事中,车夫对一位可能碰瓷的老妇人展现出的关怀与同情,与鲁迅先生自身的态度形成了鲜明对比,...
优秀的中考作文“一件小事”便通过两个生活中的小故事,向我们展现了这种力量。 作文的第一部分,描述了一位下岗妇女的无私行为。她在社区组织的募捐活动中,毫不犹豫地捐献了自己半个月的生活费来帮助灾区的人民。...
整理了《架构师应该掌握的97件小事》这本手的全部思维,形成脑图。目前还有一些思维需要整理,欢迎大家指针
一件小事鲁迅读后感参考.doc
我曾有过一次值日的经历,虽然只是一件小事,却让我难以忘怀,其中的道理至今仍深深影响着我。 那是一个阳光明媚的下午,轮到我做值日长,我本以为这是一项轻松的工作,不过是打扫卫生、整理教室而已。然而,当班长...
关于让自己变得更幸福的20件小事,文章从不同的生活细节出发,阐述了一系列易于实践的建议,旨在帮助人们通过简单的日常行为来提升幸福感。以下是对这20件小事的详细解释和它们背后的知识点: 1. 面带微笑:微笑是...
在这个“关于梦想这件小事”的项目中,我们可以深入探讨网页设计的基本概念和实践技巧。 首先,我们要明白网页设计的核心目标是创造一个既美观又功能齐全的在线平台,能够有效地传达信息并提供良好的用户浏览体验。...