【发布时间】:2021-05-25 04:06:49
【问题描述】:
我想在我的组合框中添加 2 个值。我用场景生成器添加了这个组合框。我使用了一种方法来做到这一点,但只是得到一个空的组合框。
@FXML
private ComboBox<String> taal;
@FXML
public void comboItems(){
// ObservableList<String> list = FXCollections.observableArrayList("Nederlands","Engels");
// taal = new ComboBox<>();
// taal.setItems(list);
taal = new ComboBox<>();
taal.getItems().addAll("Nederlands","Frans");
System.out.println(taal.getItems());
System.out.println("combobox");
}
如您所见,我尝试了两种不同的方法。我通过 system.out.println 获得了 console.log 上的所有内容,但是当我运行项目时仍然得到一个空的组合框。
这里是我初始化它的地方:
public class Main extends Application {
private static Controller controller = new Controller();
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("student.fxml"));
primaryStage.setTitle("Studenten");
primaryStage.setScene(new Scene(root, 1200, 800));
root.getStylesheets().add("student.css");
primaryStage.show();
}
public static void main(String[] args) {
StudentIO.open();
controller.comboItems();//that combobox is inside a class which is called controller.
launch(args);
}
}
【问题讨论】:
-
如果在 Scenebuilder/FXML 中创建节点,则不应执行 `taal = new ComboBox();`。
-
阅读有关如何使用 fxml 的教程 .. 另一个错误(除了 @Sedrick 已经发现的错误)是必须加载控制器(与实例化相比)
标签: java javafx combobox scenebuilder