Java 如何用队列元素填充组合框?
一段时间以来,我一直在想如何用队列中的多个元素填充组合框。有人能告诉我怎么做吗 我正在使用JavaFX(无scenebuilder)和最新版本的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
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()));