Java ComboBox不会被填充

时间:2017-06-05 05:30:56

标签: java javafx combobox

我已经尝试了一切来弄清楚为什么我的组合框不会被填充,但没有任何作用。

在我的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 个答案:

答案 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()