Swing中的事件
事件驅(qū)動(dòng)
所有的GUI程序都是事件驅(qū)動(dòng)的。Swing當(dāng)然也是。
GUI程序不同于Command Line程序,一個(gè)很大的區(qū)別是程序執(zhí)行的驅(qū)動(dòng)條件:命令行程序是接受用戶輸入的文本參數(shù),對(duì)命令解析,然后通過(guò)類(lèi)似switch的選擇來(lái)執(zhí)行不同的功能模塊。而GUI程 序就不一樣了。GUI程序由界面元素組成,如Button,CheckBox,TextArea,等等。用戶操作不同的組件,就會(huì)引發(fā)不同的事件,然后, 程序編寫(xiě)時(shí)注冊(cè)到UI組件上的事件處理程序得到調(diào)用,以此來(lái)和用戶交互。
事件Event
事件有點(diǎn)類(lèi)似于異常:事件是事件類(lèi)的對(duì)象,它攜帶了事件相關(guān)的信息,異常是異常類(lèi)的對(duì)象,他攜帶了異常信息。無(wú)論是異常,還是事件
發(fā)生時(shí),我們的程序都要事先寫(xiě)好相應(yīng)的代碼應(yīng)對(duì)并處理。只不過(guò),對(duì)于程序員來(lái)說(shuō),事件是正派的,而異常則是反派,誰(shuí)也不希望自己的程序出現(xiàn)異常。
java中,所有的事件類(lèi)都是EventObject類(lèi)的子類(lèi),所有的事件都有一個(gè)成員字段:source用來(lái)保存事件源,即引發(fā)事件的對(duì)象。
EventObject serialVersionUID = 5516075349620653480L (source == IllegalArgumentException("null source".source = getClass().getName() + "[source=" + source + "]"