如何确定单击的Vaadin表格行是否已被选中或取消选中?

如何确定单击的Vaadin表格行是否已被选中或取消选中?,vaadin,vaadin7,Vaadin,Vaadin7,在用户单击Vaadin 7表格中的一行后,我如何判断 如果行已被选中或取消选中-单击选中的行将取消选中该行-(因为还有一列 需要保持同步的复选框) 当我在ItemClickListener中尝试table.getValue()时,如果 行被选中,如果行被取消选中,则项目id为-即 我会期待什么 table.addItemClickListener(new ItemClickEvent.ItemClickListener() { @Override public void itemClic

在用户单击Vaadin 7表格中的一行后,我如何判断 如果行已被选中或取消选中-单击选中的行将取消选中该行-(因为还有一列 需要保持同步的复选框)

当我在ItemClickListener中尝试table.getValue()时,如果 行被选中,如果行被取消选中,则项目id为-即 我会期待什么

table.addItemClickListener(new ItemClickEvent.ItemClickListener() {
  @Override
  public void itemClick(ItemClickEvent event) {

    // how tell if row has been selected or deselected?
    Object idx = table.getValue();
  }
});
谢谢,, Steve

使用代替表格。它具有
selectionListener
属性,可以帮助您实现所需的功能


在表api中,您可以使用getValue()方法,该方法将生成所选行

根据是否处于MultiHelp模式,您可以推断发生了什么

(因为还有一列复选框需要保留在 同步

使用ans set
grid.setSelectionMode(SelectionMode.MULTI)默认情况下,您将有一个带有复选框的额外列

现在,如果您不想使用
网格

对于
Table
您应该使用
vaadinTable.addValueChangeListener(…)
而不是
ItemClickListener

例如:

另一个选择是

table.addItemClickListener(new ItemClickEvent.ItemClickListener() {
  @Override
  public void itemClick(ItemClickEvent event) {
      //Manage collection and manually fetch property of table
      Object value = event.getItem().getItemProperty("property").getValue();
  }
});
table.addItemClickListener(new ItemClickEvent.ItemClickListener() {
  @Override
  public void itemClick(ItemClickEvent event) {
      //Manage collection and manually fetch property of table
      Object value = event.getItem().getItemProperty("property").getValue();
  }
});