您好,我正在使用自定义侦听器来处理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
}
}
答案 0 :(得分:3)
我在Vaadin的7.7.16版本中创建了一个最小示例,在其中创建了一个表,并用3个实体填充该表并添加了MyCustomListener。每当我单击一行时,仅针对所选行触发一个事件。因此,这不是正常的行为。您确定只在表上调用一次addItemClickListener吗?您应检查此方法仅被调用一次。也许您想在
处设置一个断点table.addItemClickListener(new MyCustomListener());
因为如果多次调用addItemClickListener,将有多个ActionListener都被执行(因为方法名称说它添加)。看来您要添加的新监听器数量与表中实体的数量一样。