![Java程序設(shè)計(jì)中文6slide教案_第1頁(yè)](http://file4.renrendoc.com/view11/M02/1D/2E/wKhkGWVsiOGAAdgwAAEok6lh_DY648.jpg)
![Java程序設(shè)計(jì)中文6slide教案_第2頁(yè)](http://file4.renrendoc.com/view11/M02/1D/2E/wKhkGWVsiOGAAdgwAAEok6lh_DY6482.jpg)
![Java程序設(shè)計(jì)中文6slide教案_第3頁(yè)](http://file4.renrendoc.com/view11/M02/1D/2E/wKhkGWVsiOGAAdgwAAEok6lh_DY6483.jpg)
![Java程序設(shè)計(jì)中文6slide教案_第4頁(yè)](http://file4.renrendoc.com/view11/M02/1D/2E/wKhkGWVsiOGAAdgwAAEok6lh_DY6484.jpg)
![Java程序設(shè)計(jì)中文6slide教案_第5頁(yè)](http://file4.renrendoc.com/view11/M02/1D/2E/wKhkGWVsiOGAAdgwAAEok6lh_DY6485.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Chapter
16
事件驅(qū)動(dòng)程序設(shè)計(jì)*1Objectives*2F
To
start
with
event-driven
programming
with
a
simple
examp
14.1).F
To
explain
the
concept
of
event-driven
programming
(§14.F
To
understand
events,
event
sources,
and
event
classes
(§F
To
declare
listener
classes
and
write
the
code
to
handle
ev14.3).F
To
register
listener
objects
in
the
source
object
(§11.3)F
To
understand
how
an
event
is
handled
(§14.3).F
To
write
programs
to
deal
with
ActionEvent
(§14.3).F
To
write
programs
to
deal
with
MouseEvent
(§14.4).F
To
write
programs
to
deal
with
KeyEvent
(§14.5).F
To
use
the
Timer
class
to
control
animations
(§14.6
Optio過(guò)程式vs.事件驅(qū)動(dòng)編程*3F
過(guò)程式程序是按過(guò)程的順序執(zhí)行的。F在事件驅(qū)動(dòng)程序中,當(dāng)發(fā)生一個(gè)事件時(shí)執(zhí)行相應(yīng)的代碼。Taste
of
Event-DrivenProgrammingSimpleEventDemoRun*4事件和事件源*5F
事件可定義為程序發(fā)生了某些事情的信號(hào)。外部用戶行為,例如移動(dòng)鼠標(biāo)、點(diǎn)擊按鈕和敲擊鍵盤等,或內(nèi)部程序行為,例如定時(shí)器等都可以引發(fā)事件。程序可以選擇響應(yīng)或忽略事件。F
在其上觸發(fā)或發(fā)生事件的組件稱為源對(duì)象或源組件。Event
Classes一個(gè)事件是事件類的實(shí)例,事件類的根類是
java.util.EventObject。一些事件類的層次關(guān)系如下*6事件信息*7F
事件對(duì)象包含與事件相關(guān)的一切屬性??梢允褂肊ventObject類中的實(shí)例方法getSource()得事件的源對(duì)象.EventObject類的子類處理特定類型的事件。用戶行為、源對(duì)象和事件類型*8Source Event
TypeUser
Action
Object
GeneratedClick
a
buttonJButtonActionEventClick
a
check
boxJCheckBoxItemEvent,
ActionEventClick
a
radio
button
JRadioButtonJTextFieldItemEvent,
ActionEventActionEventPress
return
on
a
text
fieldSelect
a
new
item
JComboBoxWindow
opened,
closed,
etc.ItemEvent,
ActionEventWindow
WindowEventMouse
pressed,
released,
etc.Component
MouseEventKey
released,
pressed,
etc.
Component
KeyEvent注*9F所有的事件類除了ListSelectionEvent和ChangeEvent(在javax.swing.event中)都包括java.awt.event包中。AWT事件本來(lái)是為AWT組件設(shè)計(jì)的,但是許多Swing組件都會(huì)觸發(fā)它們。F如果一個(gè)組件可以觸發(fā)某個(gè)事件,那么這個(gè)組件的任意子類都可以觸發(fā)同類型的事件。注:委托處理模型源對(duì)象觸發(fā)一個(gè)事件,監(jiān)聽(tīng)該事件的監(jiān)聽(tīng)器處理該事件。*10源組件的內(nèi)部函數(shù)*11事件、監(jiān)聽(tīng)接口和接口方法*12Listener
Interface
Listener
Methods
(Handlers)Event
ClassActionEventItemEventWindowEventActionListenerItemListenerWindowListeneractionPerformed(ActionEvent)itemStateChanged(ItemEvent)windowClosing(WindowEvent)windowOpened(WindowEvent)windowIconified(WindowEvent)windowDeiconified(WindowEvent)windowClosed(WindowEvent)windowActivated(WindowEvent)windowDeactivated(WindowEvent)ContainerEventContainerListenercomponentAdded(ContainerEvent)componentRemoved(ContainerEvent)MouseEvent
MouseListener
mousePressed(MouseEvent)mouseReleased(MouseEvent)mouseClicked(MouseEvent)mouseExited(MouseEvent)mouseEntered(MouseEvent)KeyEventKeyListenerkeyPressed(KeyEvent)keyReleased(KeyEvent)keyTypeed(KeyEvent)java.awt.event.ActionEvent*13Example:
First
Version
forControlCircle
(no
listeners)首先編寫(xiě)程序,顯示一個(gè)圓在中央以及兩個(gè)按鈕在底部的用戶接口ControlCircle1Run*14Example:
Second
Version
forControlCircle
(with
listener
for
Enla編寫(xiě)監(jiān)聽(tīng)器類,來(lái)通過(guò)按鈕控制圓的半徑。ControlCircle2Run*15內(nèi)部類監(jiān)聽(tīng)器*16內(nèi)部類是定義在另一個(gè)類的范圍內(nèi)的類,監(jiān)聽(tīng)器類是專門設(shè)計(jì)用來(lái)為GUI組件創(chuàng)建監(jiān)聽(tīng)器對(duì)象的,而監(jiān)聽(tīng)器類是不能被其他應(yīng)用程序所共享,因此適合在框架內(nèi)定義為內(nèi)部類。內(nèi)部類*17Revising
SimpleEventDemoUsing
Inner
ClassesSimpleEventDemoInnerClassRun*18匿名內(nèi)部類可以使用匿名內(nèi)部類縮短內(nèi)部類監(jiān)聽(tīng)器。匿名內(nèi)部類是沒(méi)有名字的內(nèi)部類。它一步完成聲明內(nèi)部類和創(chuàng)建一個(gè)該類的實(shí)例。new
SuperClassName/InterfaceName()
{//
Implement
or
override
methods
in
superclass
or
interfa//
Other
methods
if
necessary}*19匿名內(nèi)部類*20F
匿名內(nèi)部類必須是擴(kuò)展父類或?qū)崿F(xiàn)接口的,但它不能有明確的extends或者implements語(yǔ)句。F匿名內(nèi)部類必須實(shí)現(xiàn)父類或接口中所有的抽象方法。F匿名內(nèi)部類總是使用父類的無(wú)參構(gòu)造方法來(lái)創(chuàng)建實(shí)例。Revising
SimpleEventDemoUsing
Anonymous
Inner
ClassesSimpleEventDemoAnonymousInnerClassRun*21Example:
Handling
SimpleAction
EventsF
Objective:在窗口中顯示OK和Cancel按鈕.當(dāng)某個(gè)按鈕被按下,在控制臺(tái)上會(huì)有相應(yīng)按鈕
被按下的提示信息。TestActionEventRun*22Example:處理窗口事件TestWindowEventRun*23F
Window類的任何一個(gè)子類都可能觸發(fā)下面的窗
口事件:打開(kāi)窗口、正在關(guān)閉窗口、關(guān)閉窗口、激活窗口、變成非活動(dòng)窗口、最小化窗口和還原窗口。JFrame是Window的子類,所以它可以觸
發(fā)WindowEvent監(jiān)聽(tīng)器接口適配器AdapterDemoRun*24F實(shí)現(xiàn)接口必須實(shí)現(xiàn)接口所有方法,即使程序并不關(guān)注某些方法。當(dāng)接口方法很多時(shí),會(huì)變得比較麻煩。為了方便起見(jiàn),Java提供稱作方便適配器(convenience
adapter)的支持類,它提供監(jiān)聽(tīng)接口中所有方法的默認(rèn)實(shí)現(xiàn),雖然只是空的方法體。Java為每個(gè)AWT監(jiān)聽(tīng)接口提供了適配器。每個(gè)
XListener的適配器類名為XAdapter.MouseEvent*25Handling
Mouse
Events*26F
Java提供兩個(gè)處理鼠標(biāo)事件的監(jiān)聽(tīng)接口,
MouseListenerand
MouseMotionListener,來(lái)處理鼠標(biāo)事件.F
MouseListener
接口可以監(jiān)聽(tīng)鼠標(biāo)被按下、釋放、輸入、退出或點(diǎn)擊的動(dòng)作.F
MouseMotionListener接口監(jiān)聽(tīng)鼠標(biāo)拖動(dòng)或移動(dòng)的動(dòng)作.Handling
Mouse
Events*27Example:
Moving
Message
UsingMouseObjective:在面板中顯示一條信息,可
以用鼠標(biāo)移動(dòng)這條
信息,信息會(huì)隨著
鼠標(biāo)的拖動(dòng)而移動(dòng),信息總是顯示在鼠標(biāo)指針處。MoveMessageDemoRun*28Handling
Keyboard
Events*29Java提供KeyListener
接口監(jiān)聽(tīng)鍵盤事件。F
keyPressed(KeyEvent
e)Called
whena
key
is
pressed.F
keyReleased(KeyEvent
e)Called
whena
key
is
released.F
keyTyped(KeyEvent
e)Called
whena
key
is
pressed
and
thenreleased.The
KeyEvent
Class*30F
Methods:getKeyChar()methodgetKeyCode()
methodF
Keys:Home
VK_HOMEEnd
VK_ENDVK_PGUPVK_PGDNPage
UpPage
Downetc...The
KeyEvent
Class,
cont.*31Example:
Keyboard
Events
DemoObjective:顯示用戶輸入的字
符。用戶可以
使用箭頭鍵移
動(dòng)字符,KeyEventDemoRun*32The
Timer
Class并非所有
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年院線經(jīng)營(yíng)項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模板
- 2025年防結(jié)皮劑項(xiàng)目提案報(bào)告模板
- 2025年會(huì)議場(chǎng)地租賃合同書(shū)模板
- 2025年勞務(wù)派遣人員安全生產(chǎn)責(zé)任協(xié)議
- 2025年產(chǎn)品銷售合同范本官方
- 2025年鐵軌建設(shè)項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模范
- 2025年節(jié)日禮品項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模板
- 2025年規(guī)劃管理服務(wù)項(xiàng)目申請(qǐng)報(bào)告
- 2025年臨時(shí)聘用人員安全生產(chǎn)協(xié)議
- 2025年中信銀行信用卡還款合同
- 常見(jiàn)食物的嘌呤含量表匯總
- 人教版數(shù)學(xué)八年級(jí)下冊(cè)同步練習(xí)(含答案)
- SB/T 10752-2012馬鈴薯雪花全粉
- 2023年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招(英語(yǔ))試題庫(kù)含答案解析
- 濕型砂中煤粉作用及檢測(cè)全解析
- 積累運(yùn)用表示動(dòng)作的詞語(yǔ)課件
- 機(jī)動(dòng)車登記證書(shū)英文證書(shū)模板
- 第8課《山山水水》教學(xué)設(shè)計(jì)(新人教版小學(xué)美術(shù)六年級(jí)上冊(cè))
- T∕ZSQX 008-2020 建設(shè)工程全過(guò)程質(zhì)量行為導(dǎo)則
- 質(zhì)量管理體系基礎(chǔ)知識(shí)培訓(xùn)-2016
- 甲醇催化劑說(shuō)明書(shū)
評(píng)論
0/150
提交評(píng)論