Vaadin table 行侦听器在单击时触发多次

Vaadin table row listener triggers multitple times on click

您好,我正在为 vaadin 7 的 table 行中的点击事件使用自定义侦听器。 问题是触发器为 table 上的每一行跳转一次。 这是正常行为吗?

我的代码:

正在向 table

添加侦听器
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

  }
}

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

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

因为如果多次调用addItemClickListener,就会有多个ActionListener被全部执行(正如方法名所说添加一个监听器)。并且您添加的新侦听器数量似乎与 table.

中的实体数量一样多