第10章 鼠标与键盘事件的处理

合集下载

鼠标和键盘事件

鼠标和键盘事件
1.在Netscape浏览器中处理按键事件 2.在IE浏览器中处理按键事件 1.2.2onKeyUp事件 onKeyUp事件会在键盘按键被松开时触发,其语法格式如下: onKeyUp="SomeJavaScriptCode"; 其中,SomeJavaScriptCode表示事件发生时执行的 JavaScript函数。
鼠标和键盘事件
1.1鼠 标 事 件
• 用户在浏览Web页面时使用的鼠标事件主要 有:单击鼠标左键时,程序能够报告鼠标所在 的位置;释放鼠标键时,程序能够报告鼠标键 已经弹起等。对于不同的浏览器(如IE浏览器 和Netscape浏览器),相应的鼠标事件处理函 数也略有不同。
鼠标和键盘事件
1.1鼠 标 事 件
1.文字跟随鼠标指针
在文字跟随鼠标指针的效果中,文字会随着鼠标指针的移动而舞动, 这个效果可以通过使用自定义函数makesnake来实现。
2.星星跟随鼠标指针
在星星跟随鼠标指针的效果中,通过<div>标签来设置星星的载入、大 小、颜色。
鼠标和键盘事件
1.2 键 盘 事 件
在JavaScipt中,可以通过onKeyPress事件和onKeyUp事件获得键 盘的按键信息。 1.2.1onKeyPress事件
鼠标和键盘事件
1.1鼠 标 事 件
• 1.1.2 onMouseOver事件和onMouseOut事件 使用JavaScript中的onMouseOver事件和onMouseOut事件可以
实现页面预览、图像切换、用鼠标点亮文本、弹出对话框、更 改图片清晰度等功能。 1.页面预览: 2.图像切换:是当鼠标指针移至Web页面上的一幅图像时,此图 像切换成另一幅图像;将鼠标指针移开时,此图像恢复为原来 的图像。

C#处理鼠标和键盘事件

C#处理鼠标和键盘事件

在程序运行中,产生事件的主体有很多,其中尤其以键盘和鼠标为最多。

本文就来探讨一下在C#中和这二个主体相关的事件的处理过程。

一.本文介绍的程序设计和运行的软件环境:(1).微软公司视窗2000服务器版(2) FrameWork SDK Beta 2二.C#中处理鼠标相关的事件:鼠标相关的事件大致有六种,分别是:"MouseHover"、"MouseLeave"、"MouseEnter"、"MouseMove"、"MouseDown"和"MouseUp"。

(1).如何在C#程序中定义这些事件:在C#中是通过不同的Delegate来描述上述事件,其中描述"MouseHover"、"MouseLeave"、"MouseEnter"事件的Delegate是"EventHandler",而描述后面的三个事件的Delegate是"MouseEventHandler"来描述。

这二个Delegate分别被封装在不同的命名空间,其中"EventHandler"被封装在"System"命名空间;"MouseEventHandler"被封装在"Syetem.Windows.Froms"命名空间中的。

在为"MouseHover"、"MouseLeave"、"MouseEnter"事件通过数据的类是"EventArgs",他也被封装在"System"命名空间中;而为后面的三个事件提供数据的类是"MouseEventArgs",他却被封装在"Syetem.Windows.Froms"命名空间。

QT 篇键盘、鼠标事件的处理

QT  篇键盘、鼠标事件的处理

键盘、鼠标事件的处理事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。

对于初学者,总会对Qt中信号和事件的概念混淆不清。

其实,记住事件比信号更底层就可以了。

比如说,我们用鼠标按下界面上的一个按钮,它会发射clicked()单击信号,但是,它怎么知道自己被按下的呢,那就是通过鼠标事件处理的。

这里可以看到,鼠标事件比信号更底层。

在Qt中处理事件有多种方法,不过最常用的是重写Qt事件处理函数。

这里我们就以鼠标事件和键盘事件为例来进行简单的介绍。

一、鼠标事件1.新建Qt Gui应用,项目名称为“myEvent”,基类更改为QWidget,类名为Widget。

2.完成项目创建后,在设计模式向界面上拖入一个Push Button。

3.在widget.h文件添加鼠标按下事件处理函数声明:protected:void mousePressEvent(QMouseEvent*);4.到widget.cpp文件中先添加头文件包含:#include<QMouseEvent>然后在下面添加函数的定义:void Widget::mousePressEvent(QMouseEvent*e){ui->pushButton->setText(tr("(%1,%2)").arg(e->x()).arg(e->y()));}这里的arg()里的参数分别用来填充%1和%2处的内容,arg()是QString类中的一个静态函数,使用它就可以在字符串中使用变量了。

其中x()和y()分别用来返回鼠标光标所在位置的x和y坐标值。

这样,当鼠标在界面上点击时,按钮就会显示出当前鼠标的坐标值。

效果如下图所示。

除了鼠标按下事件,还有鼠标释放、双击、移动、滚轮等事件,其处理方式与这个例子是相似的。

二、键盘事件1.首先在widget.h中添加protected函数声明:void keyPressEvent(QKeyEvent*);2.然后到widget.cpp中添加头文件包含:#include<QKeyEvent>3.最后添加键盘按下事件处理函数的定义:void Widget::keyPressEvent(QKeyEvent*e){int x=ui->pushButton->x();int y=ui->pushButton->y();switch(e->key()){case Qt::Key_W:ui->pushButton->move(x,y-10);break;case Qt::Key_S:ui->pushButton->move(x,y+10);break;case Qt::Key_A:ui->pushButton->move(x-10,y);break;case Qt::Key_D:ui->pushButton->move(x+10,y);break;}}这里我们先获取了按钮的位置,然后使用key()函数获取按下的按键,如果是指定的W、S、A、D等按键时则移动按钮。

第十讲(1) 键盘与鼠标事件过程

第十讲(1) 键盘与鼠标事件过程
主讲人:安东兴
第10章 键盘与鼠标事件过程
主要内容
使用键盘事件过程,可以处理当按下或释放键盘上 某个键时所执行的操作;而鼠标事件过程可用来处 理与鼠标光标的移动和位置有关的操作。本章介绍 与键盘和鼠标有关的事件过程。
键盘事件
在Visual Basic中,提供KeyPress、KeyDown、 KeyUp三种键盘事件,窗体和接受键盘输入的控件都 识别这三种事件。 KeyPress 按了键盘的某键时触发 。 KeyDown 按下键盘的某键触发。 KeyUp 释放键盘的某键触发。
Shift:记录Shift、Ctrl、Alt三个转换键的状态
按Shift键(001B) 按Ctrl键 (010B) 按Alt键
Shift=1 Shift=2 Shift=4
b2 b1 b0
(100B)
如果同时按下两个或三个转换键,则Shift参数的值即为上述
两者或三者之和。请自己试一试。(参照教材P261页) 同时按下Ctrl和Shift键,Shift参数值为3
Sub Form_KeyDown(keycode As Integer, shift As Integer) Sub Form_KeyUp(keycode As Integer, shift As Integer)
可用于窗体和文本框、图片框等有关控件。
Sub object_KeyDown(keycode As Integer,shift As Integer)
键盘事件常用于检查输 入数据是否合法。如在 某文本框中输入“a”, 则在文本框接受字符前, 键盘事件的程序可以先 期截获该字符。
10. 1 KeyPress事件
在程序运行过程中,当按下键盘某个键时,会触 发当前拥有输入焦点的那个控件的KeyPress事件。 当KeyPress事件发生时,可获得当前所按键的字 符ASCII码值,如:按下回车键时,可获得该键的字 符ASCII码值13。 KeyPress事件可用于文本框、图片框、命令按钮、 复选框、列表框、组合框、滚动条、窗体等有关控件。

vb 键盘与鼠标事件过程

vb 键盘与鼠标事件过程

拖放有关的事件
与拖放有关的事件是dragdrop和dragover Dragdrop事件 事件:把控件拖到目标后放开鼠标产生一个dragdrop事件。 事件 该事件过程如下: Sub 对象名_dragdrop(source,y as single) …… end sub 参数解析: Source:是一个对象变量,类型为control,该参数含有被拖动对象的属性 X,Y:松开鼠标放下对象时鼠标光标的位置 Dragover事件 事件:用于图标的移动。拖动对象越过一个控件时产生一个dragover 事件 事件,该事件过程格式如下: Sub 对象名_dragover(source as control,x as single,y as single,state as integer) …… end sub
鼠标事件
鼠标键 鼠标键状态参数button设定,该参数是一个整数(16位),见下表
Button参数二进制值 Button参数十进制值 参数二进制值 参数十进制值
000 001 010 011 100 101 110 111 0 1 2 3 4 5 6 7 未按任何键
作用
左键被按下(默认) 右键被按下 左右键同时被按下 中间键被按下 按下中间与左键 按下中间与右键 3个键同时被按下
第十章 键盘与鼠标事件过程
Keypress事件
当一个控件或窗体拥有输入焦点时,该控件或窗体从键盘 上接受输入的信息。Keypress事件的一般格式: private sub 控件名_keypress(keyascii as integer) …… end sub 该事件有一个参数,这个参数有两种形式: 第一种形式是index as integer,只用于控件数组; 第二种形式是keyascii as integer ,用于单个控件,用来 识别按键的ascii码。 利用keypress事件可以对输入的值进行限制。

鼠标与键盘事件

鼠标与键盘事件

七、键盘事件综合示例
检验输入
接上页
Private Sub Text_month_KeyPress(KeyAscii As Integer) If KeyAscii < 48 And KeyAscii <> 8 Or KeyAscii > 57 Then Beep : MsgBox "请输入数字“ KeyAscii = 0 End If End Sub Private Sub Text_passwd_KeyPress(KeyAscii As Integer) If KeyAscii < 48 And KeyAscii <> 8 Or KeyAscii > 57 Then Beep : MsgBox "请输入数字“ : KeyAscii = 0 End If End Sub Private Sub Text_year_KeyPress(KeyAscii As Integer) If KeyAscii < 48 And KeyAscii <> 8 Or KeyAscii > 57 Then Beep : MsgBox "请输入数字“ : KeyAscii = 0 End If ‘8代表退格符 End Sub Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then MsgBox “按下了回车符" If (Shift And 2) > 1 Then MsgBox “你按下了ctrl键" End Sub
五、keypress事件说明: keypress事件说明: 事件说明
Keypress事件:用于截获在文本框/ 组合框中输入的按键; Sub 控件名_keypress ([index as integer,] keyascii as integer ) 参数:([index as integer ,] keyascii as integer) a. index: 当控件是控件数组中的一个元素时,index代表在数组 是索引值,即下标 b. keyascii: 返回标准的ascii键码 可以用chr(keyascii) 将ascii 转化为相应的字符;或用 =asc(char) 将字符转为ascii码。(用于判定输入是否为某字符) 注意:keypress 事件不是指出所按字符在键盘上的物理位置,而 是传送一个字 符,故它可以判别大小写。 相反,keyup/ keydown能识别的是所按字符在键盘上的物理位置, 则大小写字符的keycode码是一样的。 (若要在keyup/ keydown 中判别字符的大小写,需判定是否为 shift +该键)

VB键盘与鼠标事件过程

VB键盘与鼠标事件过程

VB键盘与鼠标事件过程在VB中,键盘和鼠标事件是通过事件处理程序来实现的。

事件处理程序是一段代码,当用户与应用程序的用户界面交互时,会触发这段代码。

下面将详细介绍VB中键盘和鼠标事件的过程。

键盘事件过程:1.事件注册:在VB中,要处理键盘事件,首先需要将事件与特定的控件关联起来。

可以通过在设计视图中选择控件,然后在属性窗口中选择“事件”选项卡来注册事件。

2.事件处理程序:在事件注册后,可以在代码视图中看到为该事件创建的事件处理程序。

事件处理程序是一个特定的过程或函数,当事件触发时,会执行这段代码。

可以在事件处理程序中编写逻辑代码来响应键盘事件。

3. 事件参数:在事件处理程序中,可以使用事件参数来获取有关事件的信息。

键盘事件参数通常包括键码(KeyCode)和修饰键(Shift、Ctrl、Alt等)。

通过使用这些参数,可以确定用户按下的是哪个键,并采取相应的操作。

4.事件处理:在事件处理程序中,可以根据需要执行特定的操作。

例如,可以根据用户按下的键,执行不同的操作或调用不同的函数。

可以使用条件语句(如If语句)来根据键码执行不同的逻辑。

5.事件冒泡:在VB中,键盘事件通常具有冒泡的特性。

这意味着,当用户在一个控件上按下键时,除了该控件的键盘事件被触发外,还会触发其父控件的键盘事件。

这样可以在不同层次的控件中处理键盘事件。

鼠标事件过程:1.事件注册:与键盘事件类似,要处理鼠标事件,首先需要将事件与特定的控件关联起来。

可以通过在设计视图中选择控件,然后在属性窗口中选择“事件”选项卡来注册事件。

2.事件处理程序:在事件注册后,可以在代码视图中看到为该事件创建的事件处理程序。

事件处理程序是一个特定的过程或函数,当事件触发时,会执行这段代码。

可以在事件处理程序中编写逻辑代码来响应鼠标事件。

3. 事件参数:在事件处理程序中,可以使用事件参数来获取有关事件的信息。

鼠标事件参数通常包括鼠标按钮(Button)和鼠标位置(X、Y 坐标)。

第10章 键盘与鼠标

第10章  键盘与鼠标
第10章 键盘与鼠标
10.1
键盘事件
10.2
与鼠标相关的事件和属性
10.3
拖放
10.1 键盘事件
10.1.1 KeyPress事件 10.1.2 KeyDown和KeyUp事件
键盘是一种输入数据或者信息的重要工具, 有些控件(如窗体和文本框)本身已经具备了处 理输入按键的功能,所以在简单编程的情况下可 以不必编写键盘事件过程。但是,如果要识别组 合键、功能键、光标移动键、小键盘(数字键盘 )上的按键、区别按下和松开的动作、对输入字 符进行筛选,就要使用键盘事件了,本章介绍的 键盘事件有KeyPress事件、KeyDown事件和 KeyUp事件。
表10-1 一些常用键的KeyCode值和内部常数
功能键 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 Backspace Tab
KeyCode值 112 113 114 115 116 117 118 119 120 121 8 9
常数 vbKeyF1 VbKeyF2 VbKeyF3 VbKeyF4 VbKeyF5 VbKeyF6 VbKeyF7 VbKeyF8 VbKeyF9 vbKeyF10 vbKeyBack vbKeyTab
当用户在对象上移动鼠标时触发MouseMove事件,事件过程的语法 为:
Private Sub object_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
语法中的object是只对象名,如“Form”、“Command”等。 这三个事件过程与面学过的其他事件过程最大的不同在于,它 们都具有四个参数。通过这四个参数可以在程序中确定事件发生时详 细的信息。这四个参数的取值与意义如下。

第10章 Visual Basic的键盘与鼠标事件

第10章 Visual Basic的键盘与鼠标事件

第10章键盘与鼠标事件10.1键盘事件默认情况下,控件的键盘事件优先于窗体的键盘事件若要窗体先接收键盘事件,需把窗体的KeyPreview属性设置为True10.1.1KeyPress事件程序运行中,按下某个键,触发当前拥有输入焦点的那个控件的KeyPress事件。

KeyPress事件发生时,可以获得当前所按键的字符的ASCII码值。

【例10.1】设计一个窗体,用于输入口令,如果口令正确,则显示相应的信息,如果不正确,则要求重新输入。

3次输入的都不正确,则停止输入。

步骤:① 新建一个“标准EXE”工程,自动在工程中添加一个名为Form1的窗体。

② 在Form1中添加一个标签Label1和一个文本框Text1。

将Label1的Caption属性设为“请输入口令:”,将Text1的Text 属性内容设为空字符串。

③ 编写程序代码。

Private Sub Text1_KeyPress(KeyAscii As Integer)Static PWord As String '保存本次输入的口令字符串Static Counter As Integer '本次输入字符个数计数,达到4后变为0 Static Numberoftries As Integer '对输入口令的字符计数Numberoftries = Numberoftries + 1 '每输入一个字符加1If Numberoftries = 12 Then End '口令为4个字符,满3次后程序退出Counter = Counter + 1PWord = PWord + Chr$(KeyAscii) '保存本次键入字符与以前的字符连成的字符串KeyAscii = 0 '键入的字符不在文本框中显示Text1.Text = String$(Counter, "*") '本次输入几位口令,文本框显示几个星号If LCase$(PWord) = "abcd" Then '将口令转换成小写字母后与"标准值"比较Text1.Text = ""PWord = ""MsgBox "口令正确,继续..."Counter = 0Print "continue...."ElseIf Counter = 4 Then '已经输入4位口令且不正确Counter = 0 '下一次输入前初始化PWord = ""Text1.Text = ""MsgBox "口令不对,请重新输入"End IfEnd Sub思考题:事件过程中用到的变量为什么定义成静态变量?10.1.2KeyDown和KeyUp事件程序运行中,按下某个键,则产生KeyDown事件,放开该键产生KeyUp事件。

《二级Visual Basic语言程序设计》[考纲分析+考点精讲+真题+习题](键盘与鼠标事件)【圣

《二级Visual Basic语言程序设计》[考纲分析+考点精讲+真题+习题](键盘与鼠标事件)【圣

第10章 键盘与鼠标事件考纲分析1.KeyPress事件。

2.KeyDown与KeyUp事件。

3.鼠标事件。

4.鼠标光标。

5.拖放。

考点精讲10.1 KeyPress事件考点1 介绍当压下键盘上的某个键时,将发生KeyPress事件。

该事件可用于窗体、复选框、组合框、命令按钮、列表框、图片框、文本框、滚动条及与文件有关的控件。

考点2 格式在窗体上画一个控件(指可以发生KeyPress事件的控件),并双击该控件,进入程序代码窗口后,从“过程”框中选取KeyPress,即可定义KeyPress事件过程。

一般格式为:KeyPress 事件带有一个参数,这个参数有两种形式:(1)Index As Integer这种形式只用于控件数组。

(2)KeyAscii As Integer这种形式用于单个控件。

考点3 作用(1)识别按键的ASCII 码参数KeyAscii 是一个预定义的变量,执行KeyPress 事件过程时,KeyAscii 是所按键的ASCII 码。

例如,按下“A”键,KeyAscii 的值为65;如果按下“a”键,则KeyAscii 的值为97,等等。

(2)对输入的值进行限制假定在窗体上建立了一个文本框(Text1),然后双击该文本框进入程序代码窗口,并从“过程”框中选择KeyPress ,编写如下事件过程:该过程用来控制输入值,它只允许输入0(ASCII码48)~9(ASCII码57)的阿拉伯数字。

如果输入其他字符,则响铃(Beep),并消除该字符。

(3)捕捉击键动作例如,用下面的事件过程可以模拟打字机:程序中的KeyAscii=0用来避免输入的字符在文本框中回显。

运行上面的程序,在文本框中输入一行字符,按回车键后,这行字符即在打印机上打印出来。

(4)修改KeyAscii变量的值在KeyPress过程中可以修改KeyAscii变量的值。

如果进行了修改,则Visual Basic 在控件中输入修改后的字符,而不是用户输入的字符。

pygame键盘和鼠标事件的处理

pygame键盘和鼠标事件的处理

pygame键盘和⿏标事件的处理pygame 的键盘和⿏标事件的处理所谓事件,就是程序上发⽣的事。

例如⽤户按下键盘上的某个键或者单击、移动⿏标,对于这些事件,游戏程序需要作出反应。

如《pygame 图像/图形绘制》中例⼦,程序会⼀直运⾏下去,直到⽤户关闭窗⼝⽽产⽣⼀个 QUIT 事件,pygame 会接收⽤户的各种操作(例如按键盘上的键、移动⿏标等)产⽣事件。

事件随时可能发⽣,⽽且量可能会很⼤,pygame 的做法是把⼀系列的事件存放到⼀个队列⾥逐个处理。

在上节例⼦中使⽤了pygame.event.get()来处理所有事件,如果使⽤pygame.event.wait() , pygame 会等到发⽣⼀个事件时才继续下去,⼀般在游戏中不太实⽤,因为游戏往往是需要动态运作的。

pygame 的常⽤事件如下所⽰:事件产⽣途径参数QUIT⽤户按下“关闭”按钮NoneACTIVEEVENT pygame 被激活或者隐藏gain 、stateKEYDOWN键盘被按下unicode 、key 、modKEYUP键盘被放开key 、modMOUSEMOTION⿏标移动pos 、rel 、buttonsMOUSEBUTTONDOWN⿏标被按下pos 、buttonMOUSEBUTTONUP⿏标被放开pos 、button1. pygame 的键盘事件的处理通常⽤pyagme.event.get()获取所有事件,若event.type == KEYDOWN , 这时是键盘事件,再判断按键的event.key的种类(即 K_a 、 K_b 、K_LEFT 这种形式)。

⽤户也可以使⽤pygame.key.get_pressed()来获取所有被按下的键值,对应的就是键是否被按下。

keys_pressed = pygame.key.get_pressed()if keys_pressed[K_SPACE]:# 空格键被按下fire() # 发射⼦弹在 key 模块下有很多函数,如下:key.get_focused(): 返回当前的 pygame 窗⼝是否被激活。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

接口事件的处理全过程(鼠标的移动和鼠标的拖动)。 本例中还应注意的另一个技巧是,拖动鼠标时(按 着鼠标左键),我们就获得了鼠标拖动时的坐标,同时 调用repaint()方法画下这个坐时,程序首先清除paint()方 法以前所画的内容,然后再调用paint()方法。但有时 我们不想让程序清除paint()方法以前所画的所有内容。 实际上当我们调用repaint()方法时,程序自动地调用 update(Graphics g)方法(从父类Component继承下来 的)清除paint()方法以前所画的内容,然后再调用 paint()方法。因此我们可以在我们的小程序中重写这 个update(Graphics g)方法(即隐藏父类的方法),根据 需要来清除哪些部分或保留哪些部分。在这个例子中, 我们在update(Graphics g)方法体内没有清除以前所画 的内容(如果准备清除可使用clearRect方法)而是继续 调用paint()方法。
第三节 KeyListener接口及事件处理
一、KeyListener接口及其方法 接口及其方法 当按下、释放或敲击键盘上一个键时就发生了键 盘事件,在Java l.2事件模式中,必须要有发生事件 的事件源。当一个组件处于激活状态时,敲击键盘上 一个键就导致这个组件上发生了键盘事件。 事件源使用addKeyListener方法获得监视器。 监视器是一个对象,创建该对象的类必须实现接 口KeyListener。接口KeyListener中有3个方法: public void keyPressed(KeyEvent e) public void keyTyped(KeyEvent e) public void KeyReleased(KeyEvent e) 当你按下键盘上某个键时,监视器就会发现,然后 方法keyPressed方法会自动执行,并且KeyEvent类
第一节 MousListener接口及事件处理
一、MouseListener接口及其方法 接口及其方法 任何组件上都可以发生鼠标事件,如:鼠标进入组 件、退出组件、在组件上方单击鼠标、拖动鼠标等都发 生鼠标事件,也就是说,组件可以成为发生鼠标事件的 事件源。 使用MouseListener接口可以处理5种操作发生的 鼠标事件: (1)在事件源上按下鼠标键。 (2)在事件源上释放鼠标键。 (3)在事件源上单击鼠标键。 (4)鼠标进入事件源。 (5)鼠标退出事件源。
发现这个事件后将自动调用接口中的这个方法对事件作 出处理。 (2)mouseMoved(MouseEvent) 负责处理鼠标移动 事件。即,当你在事件源移动鼠标时,监视器发现这个 事件后将自动调用接口中的这个方法对事件作出处理。 二、例题选讲 下例是一个非常简单的用鼠标作画的小程序。其原 理很简单,只要我们能用鼠标画点,那么就可以用鼠标 自由作画了。我们已经会用 drawLine(int x1,int y1,int x2,int y2) , , , 画从点(x1,y1)到点(x2,y2)的直线,那么当直线的起 点和终点相同时,就画出了一个点。 例1、用MouseMotionListener接口事件画图 演示18_04applet.java 通过本例应掌握的知识点是:MousMotionListener
发现这个事件后将自动调用接口中的这个方法对事 件作出处理。 (2)mouseReleased(MouseEvent) 负责处理鼠 标释放事件。即,当你在事件源释放鼠标时,监视 器发现这个事件后将自动调用接口中的这个方法对 事件作出处理。 (3)mouseEntered(MouseEvent) 负责处理鼠标 进入容器事件。即,当鼠标进入时,监视器发现这 个事件后将自动调用接口中的这个方法对事件作出 处理。 (4)mouseExited(MouseEvent) 负责处理鼠标离 开事件。即,当鼠标离开容器时,监视器发现这个 事件后将自动调用接口中的这个方法对事件作出处 理。 (5)mouseClicked(MouseEvent) 负责处理单击
鼠标事件的类型是MouseEvent,即当发生鼠标事件 时,MouseEvent类自动创建一个事件对象。 MouseEvent类中有下列几个重要的方法: (1)getX() 获取鼠标在事件源坐标系中的x坐标。 (2)getY() 获取鼠标在事件源坐标系中的y坐标。 (3)getModifiers() 获取鼠标的左键或右键。鼠标 的左键和右键分别使用InputEvent类中的常量 BUTTON1_MASK和BUTTON3_MASK来表示。 (4)getClickCount() 获取鼠标被单击的次数。 (5)getSource() 获取发生鼠标事件的事件源。 事件源获得监视器的方法是 addMouseListener(监视器)。 MouseListener接口中有如下方法: (1)mousePressed(MouseEvent) 负责处理鼠标 按下事件。即,当你在事件源按下鼠标时,监视器
云南财贸学院统计与信息学院
第十章 鼠标与键盘事件的处理
教学目的与要求 鼠标与键盘是用户与计算机进行会话的主要手段, 计算机如何响应使用者的操作就是本章所要介绍的,鼠 标与键盘事件的处理是每个程序都要用到的操作,这些 内容对进一步编写复杂程序是至关重要的,因此要求学 生要熟练掌握与运用。通过本章的学习,使学生能熟练 地掌握鼠标的MouseEvent类及鼠标各种操作(状态)的 处理方法;MouseListener接口和MouseMotionListener 接口及其事件处理过程;鼠标左键与右键的区别;控制 鼠标的指针形状。键盘事件KeyEvent类及键盘操作的三 个方法;KeyListener接口及其事件处理过程;学生应 记住常用的键码。能熟练地对鼠标和键盘的有关操作进 行应用编程。
第二节 MouseMotionListener接口及事件处理 接口及事件处理 一、 MouseMotionListener接口及其方法 接口及其方法 MouseMotionListener接口可以处理以下两种操 作发生的鼠标事件: (1)在事件源上拖动鼠标。 (2)在事件源上移动鼠标。 鼠标事件的类型是MouseEvent,即当发生鼠标 事件时,MouseEvent类自动创建一个事件对象。 事件源获得监视器的方法是 addMouseMotionListener(监视器)。 针对上面的两种事件,MouseMotionListener接 口中有如下方法: (1)mouseDragged(MouseEvent) 负责处理鼠标 拖动事件。即,当你在事件源拖动鼠标时,监视器
鼠标事件。即,当鼠标被单击时,监视器发现这个事件后 将自动调用接口中的这个方法对事件作出处理。 二、例题选讲 现在我们给出一个小程序的例子,在这个小程序中有 一个文本框,它负责记录鼠标事件。当鼠标进入小程序时, 文本区显示“鼠标进来了”;当鼠标离开时,文本区显示 “鼠标走开了”;当鼠标被按下时,文本区显示“鼠标按 下了”,并显示鼠标的坐标。 例1、MouseListener接口事件的处理 演示18_01applet.java 通过本例应掌握的知识点是:MousListener接口事 件的处理全过程。如何判断鼠标的动作、如何判断鼠标单 击和双击、如何获得鼠标当前的坐标等。 要注意该接口有5个方法,不论你是否使用某一个方 法都必须实现这5个方法。
上面的例子画图形的线条细,只有一个像素点粗。 其实可以通过画实心圆或实心矩形来改变线条的粗细。 下面是一个略微复杂的例子。在这个例子中我们可以 控制线条的粗细(由变量con控制)和颜色(由按钮 控制),而且我们还可以使用橡皮擦掉所画的图形。 另外还可以使用前面介绍的方法控制鼠标的形状。 例2、颜色、线条粗细、擦除效果设计 演示18_05applet.java 通过本例应掌握的知识点是:画线的粗细、颜色 的控制;随鼠标拖动的擦除和所画图形的全面清除。 还应注意本例中使用的“橡皮擦通知”和“清除通知” 的技巧。
在下面的例子中,当在画布上按下鼠标左键时,在 鼠标位置处绘制一个园;当按下鼠标右键时,在鼠标位置 处绘制一个矩形;当鼠标退出画布时,清除绘制的全部图 形。 例2、利用MouseListener接口事件作图 演示18_02application.java 通过本例应掌握的知识点是:如何利用 MousListener接口事件的处理来作图全过程。要掌握如何 记录左右键、如何记录鼠标的位置等技巧。 在下面的例子中,分别监视并处理按钮、文本框和 容器上的鼠标事件。注意,每个事件源的坐标系是该事件 源的左上角。 例3、对多个事件源进行处理 演示18_03applet.java 通过本例应掌握的知识点是:对多个事件源上发生 的鼠标事件进行处理及事件源内的相对坐标。
教学重点与难点 鼠标的MouseEvent类及鼠标各种操作(状态)的处 理方法、MouseListener接口和MouseMotionListener接 口及其事件处理过程、鼠标的各种状态下的形状的控制、 键盘事件KeyEvent类及键盘操作的三个方法、 KeyListener接口及其事件处理过程是本章的重点。对 鼠标和键盘的有关操作进行应用编程是本章的难点。 教学方法与手段 先通过一个用鼠标画图的程序讲授鼠标的事件处理过 程,进而再讲授复杂鼠标事件的处理程序。通过堆积木 的程序讲授键盘事件的处理过程,进而讲授复杂键盘事 件的处理程序。 利用多媒体投影进行直观演示。 理论讲授与上机实验相结合。
自动创建一个对象传递给方法keyPressed中的参数e。 方法keyTyped是Pressedkey和keyReleased方法的 组合,当键被按下又释放时,keyTyped方法被调用。 用KeyEvent类的public int getKeyCode()方法, 可以判断哪个键被按下、敲击或释放,getKeyCode 方法返回一个键码值(如教材中所示)。也可以用 KeyEvent类的public char getKeyChar()判断哪个 键被按下、敲击或释放,getKeyCahr方法返回键的 字符。 二、实例选讲 下面的例子中有10个按钮,用户可按动键盘上的 方向键移动这些按钮。
例1、键盘事件编程 演示18_07applet.java 通过本例应掌握的知识点是:键盘事件处理的全 过程。按键的判断、键值的获取。另外注意本例中移 动坐标x,y值的处理。
相关文档
最新文档