有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javafx Java组合框将不会被填充

我尽了一切努力想弄明白为什么我的组合框不会被填充,但什么都不起作用

在我的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");

试图获取某种数据,但似乎没有任何效果


共 (2) 个答案

  1. # 1 楼答案

    我假设,如果您将打印输出添加到initialize(),您将看到它没有被调用
    要调用initialize(),需要对其进行注释:@FXML private void initialize()

  2. # 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"
            );
        }
    }