在我的javafx
项目中,我得到了一个包含多个值的组合框。当我的应用程序开始时,我执行以下操作:更新javafx中的gridPane
gui.course_P = new ComboBox<String>();
for (int i = 1; i < gui.columns.size(); i++) {
gui.course_P.getItems().add(gui.columns.get(i));
}
gui.createTestButtonPane.add(gui.course_P, 2, 1);
其中gui.columns
是一个字符串列表。
同时在应用程序中可以更改此值。然而,因为我已经将这个组合框添加到我的GridPane,然后当这个值改变(gui.columns)时,我的场景新的值没有显示在组合框。因为我已经添加了旧的gui.course。有没有办法用新的gui.course_P更新createTestButtonPane?
编辑:我所试图做的是对的组合框添加值上的监听器,然后重新添加它到gridPane:
String temp1 = course_name.getText();
gui.course_P = new ComboBox<String>();
gui.course_P.getItems().add(temp1);
//gui.createTestButtonPane.add(gui.course_P, 2, 1);
该课程是正确添加到组合框,但随后当我再次将组合框添加到gridpane时,我有两个comboBox。我想要的只是将gui.course更新到我的gridPane。
EDIT2:我跟着我的代码的答案帖子的例子。
//gui.course_P = new ComboBox<>(gui.columns);
gui.course_P = new ComboBox<String>();
for (int i = 1; i < gui.columns.size(); i++) {
gui.course_P.getItems().add(gui.columns.get(i));
}
问题是,我想从列表中除了第一个元素以外的所有东西。 当我使用gui.course_P = new ComboBox<>(gui.columns);
而不是for循环时,它正在工作,但由于某种原因,我有两次列表中的元素,而且我还得到了第一个项目。我可以在没有第一项的情况下添加它吗?
添加组件或项监听组合框,如果你再更改值删除旧,并添加新的 – XtremeBaumer
添加我的问题。我在监听器上添加新值,但是我想在监听器上更新gridPane的内容。 –
你可以删除旧的/覆盖它吗? – XtremeBaumer