Java 如何用队列元素填充组合框?

Java 如何用队列元素填充组合框?,java,javafx,combobox,queue,populate,Java,Javafx,Combobox,Queue,Populate,一段时间以来,我一直在想如何用队列中的多个元素填充组合框。有人能告诉我怎么做吗 我正在使用JavaFX(无scenebuilder)和最新版本的Java。我尝试过使用迭代器,但我只能成功地将一个元素填充到组合框中 i1.getItems().addAll ( //combobox code "Solve for", //queue elements here ); //interator code. Other class calls it. itrV

一段时间以来,我一直在想如何用队列中的多个元素填充组合框。有人能告诉我怎么做吗

我正在使用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();
    }
如果队列包含以下元素[2.3、4.2、7.1],则组合框应按从上到下的顺序显示“求解”、“2.3”、“4.2”、“7.1”

然而,我只成功地让组合框显示“Solve for”、“7.1”


欢迎任何解决方案。

您只需迭代
队列
,并将元素放入
可观察列表

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());
}

考虑使用流:

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

我不确定将
的“求解”列为项目是否是一个好主意。通常,您可以在组合框旁边放置一个带有如下文本的标签,或者使用它的
promptext
属性。(如果您想允许用户通过选择此项输入新元素,请忽略此注释。)非常感谢,您的解决方案非常棒!
    ComboBox<String> cBox = new ComboBox<>();
    cBox.getItems().add("Solve for");
    cBox.getItems().addAll(queue.stream().map(String::valueOf).
                                                       collect(Collectors.toList()));