如何在vaadin表上触发ValueChangeListener?

时间:2014-03-23 10:50:55

标签: listener vaadin

问题是,我找不到已添加到表中的侦听器。 似乎方法getListeners没有正常工作。它返回一个空集合。 我的代码:

table.addValueChangeListener(new MyListener());               
System.out.println("ListenerCount="+table.getListeners(ValueChangeListener.class).size());

控制台输出:

ListenerCount=0

有什么问题?我预计会返回1。

2 个答案:

答案 0 :(得分:1)

AbstractComponent.getListeners事件类型类作为参数。

根据您的使用情况,将Property.ValueChangeEvent或其中一个实施,Field.ValueChangeEventLabel.ValueChangeEvent传递给它。

答案 1 :(得分:0)

如果您仔细阅读API,您会发现需要提供听众的事件类型:

java.util.Collection<?> getListeners(java.lang.Class<?> eventType)
  

返回为给定事件类型注册的所有侦听器   或其中一个子类。

在你的情况下:

table.getListeners(ValueChangeEvent.class);