freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

zk框架學習總結(jié)word版(編輯修改稿)

2025-04-19 03:01 本頁面
 

【文章內(nèi)容簡介】 ndEvent 和postEvent 方法來觸發(fā)事件。如上所述,桌面是頁面的集合,這些頁面服務(wù)于同樣的URL 請求。一個桌面當然是事件監(jiān)聽器能讀取的范圍。當一個事件被觸發(fā)時,它就和桌面聯(lián)系在一起。ZK 分離基于關(guān)聯(lián)桌面及流水事件(pipelines events)分成單獨的隊列。因此,同一桌面的事件可以被順序處理。另一方面,不同桌面的事件可以被并行處理。一個事件監(jiān)聽器是被允許讀取事件關(guān)聯(lián)桌面內(nèi)任何頁面的任何組件的。它也被允許將一個組件從一個頁面移到另一個頁面,只要這些頁面在同一桌面內(nèi)。另一方面,它不能讀取到其它桌面的組件。[注]: 開發(fā)人員可以在一個事件監(jiān)聽器中將一個組件從一個桌面卸載,然后在另外的事件監(jiān)聽器中將其添加到另外一個桌面。 桌面及創(chuàng)建組件當一個組件在一個事件監(jiān)聽器中被創(chuàng)建時,它就自動被分配到被處理的事件相關(guān)聯(lián)的桌面。即使組件不屬于一個頁面這種分配也會發(fā)生。這就意味著你在事件監(jiān)聽器中創(chuàng)建的任何組件可以用于監(jiān)聽正在處理的同一桌面。如果一個組件是在一個線程(thread)而不是任何事件監(jiān)聽器中創(chuàng)建的話,它就不屬于任何桌面。在這種情況下,可以將它添加到任何一個桌面,只要添加發(fā)生在一個合適的監(jiān)聽程序中。當然,一旦組件被添加到一個桌面,它就一直屬于這個桌面。對于大多數(shù)應(yīng)用程序而言,很少在線程(thread)而不是事件監(jiān)聽器中創(chuàng)建組件。然而,如果有一個長操作(long operation),你或許會在后臺線程(background thread)中執(zhí)行它。那么,你可以在后臺準備一些組件樹,然后在合適的事件被接收時將它們添加到桌面。關(guān)于此的詳細信息,參看事件監(jiān)聽與處理一節(jié)的詳細介紹。 事件監(jiān)聽與處理添加一個事件監(jiān)聽器最簡單的方法就是在一個ZUML 頁面內(nèi)聲明一個屬性。用來監(jiān)聽的屬性的值是可以被BeanShell 解釋的任何Java 代碼。window title=Wele you! border=normal button label=say wele onClick= alert(amp。quot。 Wele your study!amp。quot。) /button/window點擊“say wele”按鈕,效果如下圖所示:有兩種方法通過程序添加或移除事件監(jiān)聽器。第一種 聲明一個成員當用你自己的類重定義(overriding)一個組件后,你可以聲明一個成員函數(shù)成為事件監(jiān)聽器。在一個ZUML頁面中,你可以使用use屬性來指定你想使用的類,即用它去替換默認類。如下所示。window use=MyWindow/window 同過繼承默認的類,就像下面一樣:public class MyWindow extends {public void onOK() { //add an event listener...//handles the onOK event (sent when ENTER is pressed)}}如果你想獲得關(guān)于事件的更多信息,你可以按如下方式聲明:public void onOK( event) {...}不同的事件或許與不同的事件對象相關(guān)聯(lián)。第二種 動態(tài)地添加與移除事件監(jiān)聽器 接口中的addEventListene 和removeEventListener 方法來動態(tài)地添加或移除事件監(jiān)聽器。如下所示, 接口。void init(Component p) {...(onClick, new MyListener())。...}class MyListener implements {public void onEvent(Event event) throws UiException {...//processing the event}}(1) 延期事件監(jiān)聽器默認情況下,當客戶端的事件被觸發(fā)時就會被送到服務(wù)器。但是,許多事件僅用于維持服務(wù)器端的現(xiàn)狀,而不是向客戶端提供視覺響應(yīng)(visual response)。換句話說,這些監(jiān)聽器的事件并不需要馬上被送出。相反,它們應(yīng)該僅被提交一次,以降低客戶端和服務(wù)器端的來往,以提高服務(wù)器的性能。為求描述方便,我們稱它們?yōu)檠悠谑录O(jiān)聽器(Deferrable Event Listeners)。為了使一個事件監(jiān)聽延期,(和 EventListener)并且使用isDeferrable 方法返回true,就像下面一樣。public class DeferrableListener implements EventListener,Deferrable {private boolean _modified。public void onEvent(Event event) {_modified = true。}public boolean isDeferrable() {return true。}}當客戶端的一個事件(例如,選擇一個列表項目(list item))被觸發(fā)時,如果沒有為其注冊事件監(jiān)聽器或僅有延期(deferrable)的監(jiān)聽器被注冊,ZK 不會將事件送出。一方面,如果至少有一個非延期(nondeferrable)監(jiān)聽器,事件會被馬上送到服務(wù)器端,和所有的隊列事件(queued events)一起。沒有事件會丟失,到達順序是保存好的。[提示]:當有非延期監(jiān)聽器為用戶提供視覺響應(yīng),可以使用使用延期的(deferrable)事件監(jiān)聽器維持(maintaining)服務(wù)器狀態(tài)。(2) 為頁面動態(tài)地添加和移除事件監(jiān)聽器開發(fā)人員可以為頁面()動態(tài)地添加和移除事件監(jiān)聽器。一旦被添加,所有被指定名字的事件會被送到指定頁面的任何組件,這些頁面將會被送到監(jiān)聽器。所有的頁面級(pagelevel)事件監(jiān)聽器都是非即時。換言之,isArap 方法被忽略了。一個典型的例子是使用頁面級事件監(jiān)聽器來維護修改標志(modification flag),如下:import 。import 。import 。import 。import 。import .*。public class ModificationListener implements EventListener, Deferrable { private final Window _owner。 private final Page _page。 private boolean _modified。 public ModificationListener(Window owner) { // Note: we have to remember the page because unregister might // be called after the owner is detached _owner = owner。 _page = (Page) ()。 (() _page).addEventListener(onChange, this)。 (() _page).addEventListener(onSelect, this)。 (() _page).addEventListener(onCheck, this)。 } /** * Called to unregister the event listener. */ public void unregister() { (() _page).removeEventListener(onChange, this)。 (() _page).removeEventListener(onSelect, this)。 (() _page).removeEventListener(onCheck, this)。 } /** * Returns whether the modified flag is set. */ public boolean isModified() { return _modified。 } public void onEvent(Event event) throws Exception { } public boolean isDeferrable() { return false。 }}調(diào)用事件監(jiān)聽器的順序如下。假定接收的是onClick 事件。1. 接口,依次為添加到目標組件(targeting ponent)的onClick 事件調(diào)用事件監(jiān)聽器。按照添加的順序調(diào)用。2. 調(diào)用目標組件的onClick 屬性指定的腳本語言。3. 接口,依次為添加到目標組件的onClick 事件調(diào)用事件監(jiān)聽器。按照添加的順序調(diào)用。4. 調(diào)用目標組件的onClick 成員方法。5. 依次為添加到目標組件所屬頁面的的onClick 事件調(diào)用事件監(jiān)聽器。按照添加的順序調(diào)用。 接口是一個裝飾器(decorative interface),用來改變調(diào)用事件監(jiān)聽器的優(yōu)先級。注意,如果事件監(jiān)聽器被添加到頁面,而不是組件,這個接口是沒有意義的。:一個異步產(chǎn)生標簽的工作線程package Test。import 。import 。import 。import 。public class WorkingThread extends Thread { private static int _t。 private Desktop _desktop。 private Label _label。 private final Object _mutex = new Integer(0)。 /** * Called by to create a label asynchronously. To create a label, * it start a thread, and wait for its pletion. */ public static final Label asyncCreate(Desktop desktop) throws InterruptedException { final WorkingThread worker = new WorkingThread(desktop)。 synchronized () { // to avoid racing ()。 ()。 return 。 } } public WorkingThread(Desktop desktop) { _desktop = desktop。 } public void run() { _label = new Label(Execute + ++_t)。 synchronized (_mutex) { // to avoid racing (_desktop, _mutex)。 } }}然后,在一個事件監(jiān)聽器中,我們使用ZUML 頁面來調(diào)用這個工作線程,如在onClick事件中。使用的代碼如下所示:?page title=new page title contentType=text/html。charset=UTF8?window id=main title=Working Thread button label=Start Working Thread attribute name=onClick ()。 Label label = (desktop)。 (label)。 ()。/attribute /button timer id=timer running=false delay=1000 repeats=true //window按下“Start Working Thread”按鈕的效果如下:此代碼運行有錯誤,還沒有運行出結(jié)果,官方的demo也是有錯的。 4 組件屬性及重要函數(shù) 標簽組件Label組件主要是用來呈現(xiàn)一段文字,最簡單的應(yīng)用方式如下所示: window width=50% title=標簽應(yīng)用 border=normal hello world!/window也可通過如下方式明確指定一個labelwindow title=標簽應(yīng)用 width=50% border=normallabel value=hello world! style=color:green//window當然,你也可以為它設(shè)置各種屬性來控制其顯示方式。Label有pre、hyphen、maxlength和multiline屬性。例如當pre屬性為true時,所有的空格、換行符、制表符等都會被保留,不同屬性配合使用將會產(chǎn)生不同的結(jié)果;hyphen屬性控制單詞在超過長度限制時的行為,hyphen為ture時,超過長度的單詞會被截斷到下一行繼續(xù)顯示,為false時直接切去不顯示;maxlenth屬性用來定義單詞的最大長度;multilin
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1