簡體   English   中英

如何用Queue元素填充ComboBox?

[英]How can I populate a ComboBox with Queue elements?

我一直試圖找出如何從隊列中填充多個元素的組合框。 有人可以告訴我該怎么做嗎?

我正在使用JavaFX(沒有SceneBuilder)和Java的最新版本。 我嘗試使用迭代器,但是只能將一個元素成功填充到組合框中。

i1.getItems().addAll ( //combobox code
            "Solve for",
        //queue elements here
);


//interator code. Other class calls it.
itrVelocity = velAns.iterator();

    while (itrVelocity.hasNext()) {
        SPH3U.velocity = itrVelocity.next();
    }

如果queue具有以下元素[2.3、4.2、7.1],則組合框應按從上到下的順序顯示“ Solve for”,“ 2.3”,“ 4.2”,“ 7.1”。

但是,我僅成功地使組合框顯示“ Solve for”,“ 7.1”。

任何解決方案表示贊賞。

您只需要迭代Queue並將元素放在ObservableList

ComboBox<String> box = new ComboBox<>();
box.getItems().add("Solve for");

// Assuming generic type of Queue based on your question
Queue<Double> queue = ...; // get instance from somewhere
while (!queue.isEmpty()) {
    box.getItems().add(queue.remove().toString());
}

或者,如果您不想耗盡Queue ,則可以執行以下操作:

for (Double element : queue) {
    box.getItems().add(element.toString());
}

考慮使用stream:

    ComboBox<String> cBox = new ComboBox<>();
    cBox.getItems().add("Solve for");
    cBox.getItems().addAll(queue.stream().map(String::valueOf).
                                                       collect(Collectors.toList()));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM