Java 如何清除列表框?(ZK)

Java 如何清除列表框?(ZK),java,zk,Java,Zk,我有一个非常简单的问题。我很惊讶,我找不到答案。 如何在ZK框架中完全清除列表框(org.zkoss.zul.ListBox)?如果要清除选定的索引,请使用: 如果要清除选定索引,请使用: 如果您看到 public java.util.List getItems() 返回所有Listitem的实时列表。通过live,您可以直接使用列表界面添加或删除它们。换句话说,您可以通过直接操作返回的列表来添加或删除项目 因此,从列表中删除将从列表框中删除 因此,最终您的行将是listbox.getItem

我有一个非常简单的问题。我很惊讶,我找不到答案。
如何在ZK框架中完全清除列表框(org.zkoss.zul.ListBox)?

如果要清除选定的索引,请使用:

如果要清除选定索引,请使用:

如果您看到

public java.util.List getItems()
返回所有Listitem的实时列表。通过live,您可以直接使用列表界面添加或删除它们。换句话说,您可以通过直接操作返回的列表来添加或删除项目

因此,从列表中删除将从列表框中删除

因此,最终您的行将是
listbox.getItems().clear()

如果您看到

public java.util.List getItems()
返回所有Listitem的实时列表。通过live,您可以直接使用列表界面添加或删除它们。换句话说,您可以通过直接操作返回的列表来添加或删除项目

因此,从列表中删除将从列表框中删除


因此,最终您的行将是
listbox.getItems().clear()

下面的代码清除列表框,但如果使用模型,可能会导致问题:

lb.getItems().clear();
下面的代码将清除所选内容:

lb.clearSelection();
下面的代码设置新模型,删除旧模型和所有项目。如果模型为空,则列表框将为空

lb.setModel(model);
如果你想得到一套新的物品,最后一套应该是最好的。
如果您有它们的列表,请使用:

lb.setModel(new ListModelList<>(myList)); 
lb.setModel(新的ListModelList(myList));

下面的代码清除列表框,但如果使用模型,可能会导致问题:

lb.getItems().clear();
下面的代码将清除所选内容:

lb.clearSelection();
下面的代码设置新模型,删除旧模型和所有项目。如果模型为空,则列表框将为空

lb.setModel(model);
如果你想得到一套新的物品,最后一套应该是最好的。
如果您有它们的列表,请使用:

lb.setModel(new ListModelList<>(myList)); 
lb.setModel(新的ListModelList(myList));
  • 即使使用
    setModel
    列表框中的页码仍然显示以前的内容页码
  • getItems.clear()
    也不会清除
    列表框中的页码
编辑:

我确实找到了一个解决方案: 要确保即使是页码也会随列表项一起删除,一种方法是:

// removes the data items by setting an empty model
// this has to be done before resetting the mold
myListbox.setModel(new ListModelList<String>());

// removes the page numbers by resetting the mold
myListbox.setMold("<b>default</b>");
  • 即使使用
    setModel
    列表框中的页码仍然显示以前的内容页码
  • getItems.clear()
    也不会清除
    列表框中的页码
编辑:

我确实找到了一个解决方案: 要确保即使是页码也会随列表项一起删除,一种方法是:

// removes the data items by setting an empty model
// this has to be done before resetting the mold
myListbox.setModel(new ListModelList<String>());

// removes the page numbers by resetting the mold
myListbox.setMold("<b>default</b>");

lb.getItems().clear();如果我在新数据填充之前调用它,则不要给出必要的结果。但我注意到,在这个列表框中填充新数据时,我用lb.getItems().clear()清除的数据将再次出现。OMG,太多问题…((使用setModel()。这肯定是最好的方法。lb.getItems().clear();如果我在填充新数据之前调用它,则不会给出必要的结果。但是我注意到,在填充此列表框中的新数据时,我用lb.getItems().clear()清除的数据将再次出现。OMG,太多问题…((使用setModel())。这肯定是最好的方法。正如Nibil所说,在调用remove之后需要显式调用setModel()。:)正如Nibil所说,在调用remove之后需要显式调用setModel()不,这是一个观察/评论,我还没有找到清除zk列表框和上一个页码的解决方案不,这是一个观察/评论,我还没有找到清除zk列表框和上一个页码的解决方案