【问题标题】:Can i chain observableList clear() and addAll() in one command?我可以在一个命令中链接 observableList clear() 和 addAll() 吗?
【发布时间】:2018-09-27 18:33:41
【问题描述】:

根据用户选择的选项,我的 ComboBox 需要显示不同的内容。所以我必须扔掉现有的项目,并加载一个新的列表。

目前我有(并且这个工作)

    myComboBox.getItems().clear();
    myComboBox.getItems().addAll(myList);

但是我想把它们链接起来:

    myComboBox.getItems().clear().addAll(myList);

或:

    myComboBox.getItems().clear().getItems().addAll(myList);

但我得到:void 不能被取消引用,因为 clear() 已经返回 void。

有什么方法可以链接这些操作吗? 它有效,但很丑陋,我隐约记得看到过更优雅的解决方案,但不记得它是什么。

【问题讨论】:

  • 此组合框来自 java fx 还是 JComboBox?

标签: java combobox observablelist


【解决方案1】:

你也可以,

myComboBox = new ComboBox(myList);

【讨论】:

  • 当然可以,但它会重新分配所有的 calss,这是一个非常昂贵的过程。如果他不在乎一点点性能损失可能是最简单的方法
【解决方案2】:

如果组合框来自 javaFX,您可以使用:

myComboBox.getItems().setAll(<collection>);

任何可以替换现有集合的集合(通常是 List 或 ArrayList)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多