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
属性一节。