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 イベントが受信されるとスペースオーナー(すなわち window)に onOK イベントとして転送されるべきことを指定します。同じように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 属性を使用してどんなイベントもどのコンポーネントにも転送できます。詳細については ZK ユーザーインターフェースマークアップ言語章の forward 節を参照してください。