2011-11-24 46 views

回答

1

你可以用兩種方法做到這一點。

1)定義控制器上的單個事件處理程序,並將所有其他組件事件轉發給該事件處理程序。例如。考慮具有3個按鈕部件

<zk> 
<window id="mainwin" border="normal" title="hello" apply="pkg.TestComposer"> 
    <button id="btn1" label="Click Me 1" forward="mainwin.onClick" /> 
    <button id="btn2" label="Click Me 2" forward="mainwin.onClick" /> 
    <button id="btn3" label="Click Me 3" forward="mainwin.onClick" /> 
</window> 
</zk> 
在施加到包含駕駛室定義單個onClick事件處理程序如下

public void onClick() throws Exception { 
    Messagebox.show("Someone clicked!!!"); 
} 

這些3個按鈕組件的窗口組件控制器

即時此示例ZUML文件每個Button都可以使用forward屬性並定義目標組件以及要按以下格式forward =「event-name = target-component.target-event」處理的事件。有關更多詳細信息,請參閱前向屬性參考here

2)在ZK 6中,使用SelectorComposer和註解來定義事件處理程序的方式更加優雅。對於例如

@Listen("onClick = window > button") 
public void onClickAnyButton() { 
    // ...  
} 

請參考this smalltalk的更多詳細信息SelectorComposer