我想要在其他时间显示2个ArrayLists。我有一个按钮,当点击时应该换掉第二个列表的第一个列表。
我尝试了两种方法但收效甚微。
第一种方法是创建一个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();
}
答案 0 :(得分:1)
您可能正在遇到此issue。
两个版本都应该有效。
对于第一个解决方案,尝试撤消呼叫(先呼叫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