1

我有 2 个要在交替时间显示的 ArrayList。我有一个按钮,单击该按钮应将第一个列表换成第二个列表。

我尝试了两种方法,但收效甚微。

第一种方法是创建一个 ListDataProvider 并将其绑定到列表和表格,但是当单击按钮并且列表结构发生变化时,什么也没发生。/

我的第二种方法是坚持使用正常的 CellList 并简单地重置行数和行数据。如果我点击我的按钮两次,这种方法就有效。

我可以忽略什么?任何帮助都感激不尽!

代码如下:

这是当我尝试将 ArrayList 重新添加到 CellList

public void refreshTable()
{
    systemTable.setRowCount(SYSTEMS.size(), true);
    systemTable.setRowData(0, SYSTEMS);
}

我使用 ListDataProvider 进行了如下尝试:

 private ListDataProvider<String> listDataProvider = new ListDataProvider<String>(SYSTEMS);

public void refreshTable()
{
    listDataProvider.refresh();
}
4

1 回答 1

2

您可能遇到了这个问题

两个版本都应该工作。对于第一个解决方案,尝试反转调用(先调用setRowData(),然后调用setRowCount()):

public void refreshTable()
{
    systemTable.setRowData(0, SYSTEMS);
    systemTable.setRowCount(SYSTEMS.size(), true);
}

对于第二个解决方案,我想你忘了打电话addDataDisplay。以下是一些更改基础数据的方法:

1.)创建一个新的 ListDataProvider 并设置DataDisplay(你不需要调用刷新):

private ListDataProvider<String> listDataProvider = new ListDataProvider<String>(SYSTEMS);
listDataProvider.addDataDisplay(systemTable);

2.) 设置现有 ListDataProvider 的新列表:

   listDataProvider.setList(SYSTEMS);

3.) 修改现有列表:

   listDataProvider.getList().add/remove etc 
于 2012-05-24T11:24:29.840 回答