【发布时间】:2016-05-15 07:40:39
【问题描述】:
我已经开始用 JavaFX 编程了。
我的问题是我不太了解场景构建器和“正常”代码之间的联系。
我有一个新的 FXML 文档和这样的代码
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
我可以通过 Scene Builder 添加一些元素。它工作正常。 但现在我想添加一个带有一些值的选择框。我可以通过 Scene Builder 添加一个空白的 ChoiceBox。但没有价值观……
所以我找到了一些创建具有值的选择框的代码
ChoiceBox cb = new ChoiceBox();
cb.setItems(FXCollections.observableArrayList("Eins","Zwei","Drei","vier"));
cb.setValue("Zwei");
cb.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener() {
@Override
public void changed(ObservableValue observable, Object oldValue, Object newValue) {
System.out.println(cb.getValue());
}
});
它也很好用。但是我怎样才能将它添加到我的场景中呢?我认为以下代码行对我不起作用,因为我的根元素有一个 FMXLLoader
root.getChildren().add(cb);
我认为只有当你使用类似这样的东西时你才有 getChildren() 方法
AnchorPane root = new AnchorPane();
但是我必须通过代码对所有内容进行编码,而无需通过 Scene Builder。这样对吗?或者有没有办法将“普通”代码和场景构建器功能结合起来?
谢谢
【问题讨论】: