【问题标题】:Vaadin table row listener triggers multitple times on clickVaadin 表行侦听器在单击时触发多次
【发布时间】:2019-03-05 21:28:20
【问题描述】:

您好,我正在为 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

  }
}

【问题讨论】:

    标签: vaadin vaadin7


    【解决方案1】:

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

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

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

    【讨论】:

    • 这就是问题所在!!!! ,我在表中添加了几个听众。谢谢!!!!!!
    猜你喜欢
    • 1970-01-01
    • 2013-06-14
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多