window通常由一些按钮,菜单项目和其他组件组成。例如,
<window use="MyWindow"> ... <button label="OK"/> <button label="Cancel"/> </window>
当用户点击按钮时,onClick事件会被送至按钮本身。但是这些事件最好在window内处理而不是散落这些按钮。为了这样,你可以按如下方式使用forward属性。
<window use="MyWindow"> ... <button label="OK" forward="onOK"/> <button label="Cancel" forward="onCancel"/> </window>
在这里OK按钮的forward属性指定接收onClick事件后将其作为onOK 事件转向空间所有者(例如,window)。同样,针对Cancel 按钮的onClick事件会转向onCancel事件。因此你可以在MyWindow 命名空间内处理onOK和onCancel事件,如下。
public class MyWindow extends Window {
public void onOK() {
//called when the OK button is clicked (or the ENTER button is pressed)
}
public void onCancel() {
//called when the Cancel button is clicked (or the ESC button is pressed)
}
}
除了将onClick事件forward至空间所有者,你可以使用forward属性将任何事件forward至任何组件。参考ZK用户界面标记语言一章中forward属性一节。