有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    你可以用两种方法来做

    1)在控制器上定义单个事件处理程序,并将所有其他组件事件转发给该事件处理程序。例如,考虑这个具有3个按钮组件

    的示例ZUML文件
    <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>
    

    现在,在应用于包含这3个按钮组件的窗口组件的控制器中,您可以定义一个onClick事件处理程序,如下所示

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

    现在,对于每个按钮,您可以使用forward属性并定义目标组件以及要以以下格式处理的事件forward=“event name=target component.target event”。有关更多详细信息,请参阅转发属性引用here

    2)在ZK6中,有一种更优雅的方法来实现这一点,即使用SelectorComposer和注释来定义事件处理程序。例如

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

    有关Selector Composer的更多详细信息,请参阅this smalltalk