我已经尝试了一切来弄清楚为什么我的组合框不会被填充,但没有任何作用。
在我的FXML文件中。
<ComboBox fx:id="comboBox" layoutX="162.0" layoutY="15.0" prefHeight="25.0" prefWidth="334.0" promptText="Select past popular pizza" />
在我的控制器中,我有以下
public class ServeController {
public ObservableList<String> pizzas1 = FXCollections.observableArrayList();
@FXML public ComboBox<String> comboBox;
private void initialize() {
comboBox.getItems().addAll(
"jacob.smith@example.com",
"isabella.johnson@example.com",
"ethan.williams@example.com",
"emma.jones@example.com",
"michael.brown@example.com"
);
}
我甚至尝试过
public ObservableList<String> pizzas1 = FXCollections.observableArrayList("1","2","3","4");
尝试获取某种数据,但似乎没有任何效果。
答案 0 :(得分:2)
我认为你是以“标准”方式对控制器进行初始化。我猜测永远不会调用private void initialize()
方法。您的ServeController
未实现Initializable
界面。正确的代码应如下所示:
public class ServeController implements Initializable {
public ObservableList<String> pizzas1 = FXCollections.observableArrayList();
@FXML
public ComboBox<String> comboBox;
@Override
public void initialize(URL url, ResourceBundle rb) {
comboBox.getItems().addAll(
"jacob.smith@example.com",
"isabella.johnson@example.com",
"ethan.williams@example.com",
"emma.jones@example.com",
"michael.brown@example.com"
);
}
}
答案 1 :(得分:2)
我认为如果您向initialize()
添加打印输出,您会看到它未被调用。
要调用initialize()
,您需要对其进行注释:@FXML private void initialize()