ZK - 在 Java 中设置组合选定项

  • 本文关键字:组合 设置 Java ZK zk zul
  • 更新时间 :
  • 英文 :


我正在使用以下代码填充来自 ZK Java 的组合框项

combo.setModel(new ListModelArray(this.reasons));
combo.setSelectedItem(combo.getItems().get(2));
combo.setSelectedIndex(3);//tried this as well.

它抛出的两个案例

java.lang.IndexOutOfBoundsException: Index: 5, Size: 0
at org.zkoss.zk.ui.AbstractComponent$ChildIter.<init>(AbstractComponent.java:3267) ~[zk-8.0.2.1.jar:3.6.4]
at org.zkoss.zk.ui.AbstractComponent$ChildIter.<init>(AbstractComponent.java:3259) ~[zk-8.0.2.1.jar:3.6.4]
at org.zkoss.zk.ui.AbstractComponent$Children.listIterator(AbstractComponent.java:217) ~[zk-8.0.2.1.jar:3.6.4]

任何输入?

使用模型时,请直接将选择设置为模型。组合项不会急切地呈现,但一旦呈现,它们就会反映当前 ListModel 的状态。

保留对模型的引用:

ListModelArray<String> reasonsModel = new ListModelArray<>(this.reasons);
combo.setModel(reasonsModel);
reasonsModel.addToSelection(this.reasons[2]);

。或从组合框中获取它:

ListModelArray<String> reasonsModel = new ListModelArray<>(this.reasons);
combo.setModel(reasonsModel);
...
((Selectable<String>) combo.getModel()).addToSelection(this.reasons[2]);

要从模型中获取当前选择(可能未选择任何内容(,请执行以下操作:

Optional<String> selected = reasonsModel.getSelection().stream().findAny();

相关内容

  • 没有找到相关文章

最新更新