Vaadin表行侦听器在点击时触发多次

时间:2019-03-05 12:36:03

标签: vaadin vaadin7

您好,我正在使用自定义侦听器来处理vaadin 7中表格行中的点击事件。 问题在于,触发器针对表上的每一行跳一次。 这是正常的行为吗?

我的代码:

将侦听器添加到表中

table.addItemClickListener(new MyCustomListener());

收听者代码:

public class MyCustomListener implements ItemClickListener  {

@Override
public void itemClick(ItemClickEvent event) {
    // TODO Auto-generated method stub
    String id = event.getItem().toString();

  System.out.println(id);//If the table has X rows this is printed X 
                         //times even if i click a single time in a row

  }
}

1 个答案:

答案 0 :(得分:3)

我在Vaadin的7.7.16版本中创建了一个最小示例,在其中创建了一个表,并用3个实体填充该表并添加了MyCustomListener。每当我单击一行时,仅针对所选行触发一个事件。因此,这不是正常的行为。您确定只在表上调用一次addItemClickListener吗?您应检查此方法仅被调用一次。也许您想在

处设置一个断点
table.addItemClickListener(new MyCustomListener());

因为如果多次调用addItemClickListener,将有多个ActionListener都被执行(因为方法名称说它添加)。看来您要添加的新监听器数量与表中实体的数量一样。