或許每個(gè)軟件從業(yè)者都有從學(xué)習(xí)控制臺(tái)應(yīng)用程序到學(xué)習(xí)可視化編程的轉(zhuǎn)變過(guò)程,控制臺(tái)應(yīng)用程序的優(yōu)點(diǎn)在于可以方便的練習(xí)某個(gè)語(yǔ)言的語(yǔ)法和開(kāi)發(fā)習(xí)慣(如.net和java),而可視化編程的學(xué)習(xí)又可以非常方便開(kāi)發(fā)出各類人機(jī)對(duì)話界面(HMI)??梢暬幊袒蛟S是一個(gè)初學(xué)者開(kāi)始對(duì)軟件感興趣的開(kāi)始,也可能是一個(gè)軟件學(xué)習(xí)的里程碑點(diǎn),因?yàn)槲覀兛梢允褂酶黝愜浖砷_(kāi)發(fā)環(huán)境(IDE)方便的在現(xiàn)成的界面窗口上拖放各類組件(Component),這類組件包括我們常見(jiàn)的按鈕(Button),單選按鈕(Radio Button),復(fù)選框等(Checkbox)。這樣的拖放式開(kāi)發(fā)方式不但方便,而且窗口會(huì)立竿見(jiàn)影的顯示在我們的面前,這對(duì)于一個(gè)軟件初學(xué)者而言或許是一件非常有成就感的事情。
但是很多軟件學(xué)習(xí)者在學(xué)習(xí)可視化開(kāi)發(fā)的過(guò)程中,只是非常表面的來(lái)理解可視化編程,他們可能認(rèn)為能夠使用拖放方式完成一個(gè)界面就非常值得稱道,但是很少有人會(huì)認(rèn)真的去理解編程語(yǔ)言對(duì)于可視化編程組件的支持和整合,在Softworks軟件人才培訓(xùn)中心的兩年教學(xué)過(guò)程,我深刻的感受到了這一點(diǎn),因此下文將會(huì)結(jié)合我的教學(xué)經(jīng)驗(yàn)來(lái)講解可視化編程過(guò)程中為關(guān)鍵的“事件驅(qū)動(dòng)模型”。
1.什么是事件驅(qū)動(dòng)模型?
在講解事件驅(qū)動(dòng)模型之前,我們現(xiàn)在看看事件驅(qū)動(dòng)模型的三大要素:
·事件源:能夠接收外部事件的源體。
·偵聽(tīng)器:能夠接收事件源通知的對(duì)象。
·事件處理程序:用于處理事件的對(duì)象。
學(xué)員應(yīng)該要理解任何基于事件驅(qū)動(dòng)模型的開(kāi)發(fā)技術(shù)都包含以上三大要素,不管是.net還是java技術(shù),甚至是以前我們使用的Visual Basic和Delphi語(yǔ)言都有基于以上三大要素的事件驅(qū)動(dòng)模型開(kāi)發(fā)流程。
現(xiàn)在我們來(lái)看一個(gè)生活中的示例,如果有一天你走在路上一不小心被天上掉下來(lái)的花瓶砸到了,并且暈死了過(guò)去。那么整個(gè)過(guò)程其實(shí)就是一個(gè)事件處理流程,而且我們可以非常方便的分析出剛才所提到的事件驅(qū)動(dòng)模型中的三大要素。
1.被砸暈的這個(gè)人其實(shí)就是事件源,因?yàn)樗悄軌蚪邮艿酵獠康氖录脑大w。
2.偵聽(tīng)器就是這個(gè)人的大腦神經(jīng),因?yàn)樗鼤?huì)感知到疼痛。
3.事件處理就是這個(gè)人暈死了過(guò)去。
由于事件驅(qū)動(dòng)模型在我們?nèi)粘I钪惺菬o(wú)處不在的,因此Java和其他的編程語(yǔ)言都將這一過(guò)程運(yùn)用到了可視化編程中了。
2.Java編程語(yǔ)言中的事件驅(qū)動(dòng)模型
在Java編程技術(shù)中,常用的可視化編程當(dāng)屬Java Swing技術(shù),Java Swing為開(kāi)發(fā)者提供了很多現(xiàn)成的組件,如:按鈕(JButton),單選按鈕(JRadioButton)等。為了管理用戶與組成程序圖形用戶界面的組件間的交互,必須理解在Java中如何處理事件。
假設(shè)用戶單擊了程序圖形用戶界面中的一個(gè)按鈕,其實(shí)該按鈕就是這個(gè)事件的源(可以引發(fā)事件的物體)。所有的Java Swing對(duì)象都有感知自己被操作的能力,因此JButton按鈕也具有這樣能力。一個(gè)事件通常必須有一個(gè)源對(duì)象,這里就是JButton對(duì)象。當(dāng)單擊按鈕時(shí),JButton組件類會(huì)生成一個(gè)用于存放該事件參數(shù)的ActionEvent的對(duì)象,該對(duì)象包含了事件及事件源的信息
但是很多軟件學(xué)習(xí)者在學(xué)習(xí)可視化開(kāi)發(fā)的過(guò)程中,只是非常表面的來(lái)理解可視化編程,他們可能認(rèn)為能夠使用拖放方式完成一個(gè)界面就非常值得稱道,但是很少有人會(huì)認(rèn)真的去理解編程語(yǔ)言對(duì)于可視化編程組件的支持和整合,在Softworks軟件人才培訓(xùn)中心的兩年教學(xué)過(guò)程,我深刻的感受到了這一點(diǎn),因此下文將會(huì)結(jié)合我的教學(xué)經(jīng)驗(yàn)來(lái)講解可視化編程過(guò)程中為關(guān)鍵的“事件驅(qū)動(dòng)模型”。
1.什么是事件驅(qū)動(dòng)模型?
在講解事件驅(qū)動(dòng)模型之前,我們現(xiàn)在看看事件驅(qū)動(dòng)模型的三大要素:
·事件源:能夠接收外部事件的源體。
·偵聽(tīng)器:能夠接收事件源通知的對(duì)象。
·事件處理程序:用于處理事件的對(duì)象。
學(xué)員應(yīng)該要理解任何基于事件驅(qū)動(dòng)模型的開(kāi)發(fā)技術(shù)都包含以上三大要素,不管是.net還是java技術(shù),甚至是以前我們使用的Visual Basic和Delphi語(yǔ)言都有基于以上三大要素的事件驅(qū)動(dòng)模型開(kāi)發(fā)流程。
現(xiàn)在我們來(lái)看一個(gè)生活中的示例,如果有一天你走在路上一不小心被天上掉下來(lái)的花瓶砸到了,并且暈死了過(guò)去。那么整個(gè)過(guò)程其實(shí)就是一個(gè)事件處理流程,而且我們可以非常方便的分析出剛才所提到的事件驅(qū)動(dòng)模型中的三大要素。
1.被砸暈的這個(gè)人其實(shí)就是事件源,因?yàn)樗悄軌蚪邮艿酵獠康氖录脑大w。
2.偵聽(tīng)器就是這個(gè)人的大腦神經(jīng),因?yàn)樗鼤?huì)感知到疼痛。
3.事件處理就是這個(gè)人暈死了過(guò)去。
由于事件驅(qū)動(dòng)模型在我們?nèi)粘I钪惺菬o(wú)處不在的,因此Java和其他的編程語(yǔ)言都將這一過(guò)程運(yùn)用到了可視化編程中了。
2.Java編程語(yǔ)言中的事件驅(qū)動(dòng)模型
在Java編程技術(shù)中,常用的可視化編程當(dāng)屬Java Swing技術(shù),Java Swing為開(kāi)發(fā)者提供了很多現(xiàn)成的組件,如:按鈕(JButton),單選按鈕(JRadioButton)等。為了管理用戶與組成程序圖形用戶界面的組件間的交互,必須理解在Java中如何處理事件。
假設(shè)用戶單擊了程序圖形用戶界面中的一個(gè)按鈕,其實(shí)該按鈕就是這個(gè)事件的源(可以引發(fā)事件的物體)。所有的Java Swing對(duì)象都有感知自己被操作的能力,因此JButton按鈕也具有這樣能力。一個(gè)事件通常必須有一個(gè)源對(duì)象,這里就是JButton對(duì)象。當(dāng)單擊按鈕時(shí),JButton組件類會(huì)生成一個(gè)用于存放該事件參數(shù)的ActionEvent的對(duì)象,該對(duì)象包含了事件及事件源的信息

