在 Vaadin 中为 CustomComponent 创建监听器

Create listener for CustomComponent in Vaadin

我正在尝试在 vaadin 7 中创建一个 CustomComponent。该组件在其 setCompositionRoot() 方法中设置了 VerticalLayout,并且在其中设置了一些标签和其他布局 VerticalLayout。在主视图中实现我的自定义组件 class 我希望能够处理对我的自定义组件的点击,这意味着 VerticalLayout 作为组合根元素:

MyCustomComponent component = new MyCustomComponent();
component.addOnClickListener(listener);

但是没有像addOnClickListener这样的方法可用。我该如何实现该功能?我知道我可以在自定义组件中使用 LayoutClickListener 处理布局上的点击,但是还有一种方法可以设置侦听器,其中声明了组件,例如在主视图中 class(类似于上面的代码片段)?

像您命名的 addOnClickListener 一样创建您自己的方法,该方法将 LayoutClickListener 作为参数。在 addOnClickListener 的实现中,您将侦听器添加到布局中。示例:

component.addOnClickListener(new LayoutClickListener() {

            @Override
            public void layoutClick(LayoutClickEvent event) {
                // TODO Auto-generated method stub

            }
        });

和component.addOnClickListener的执行:

public void addOnClickListener(LayoutClickListener listener){
    yourVerticalLayout.addLayoutClickListener(listener);
}