JavaFx和场景

时间:2014-04-04 18:17:13

标签: java javafx javafx-8

我使用此代码更改了第一个屏幕上的场景。

操作按钮gotoScene2:

Node node=(Node) evento.getSource();
Stage stage=(Stage) node.getScene().getWindow();
Parent root = FXMLLoader.load(getClass().getResource("MY_SCENE_2.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();

所以代码工作正常。现在,我在控制器中对应MY_SCENE_2,我需要从代码中添加一个日期选择器,而不是使用SceneBuilder或类似的东西。

如何在当前场景(MY_SCENE_2)中添加日期选择器(我的意思是它可以是textfield或其他)?

这是我的代码:

final DatePicker datePicker = new DatePicker(LocalDate.now());

datePicker.setOnAction(event -> {
    LocalDate date = datePicker.getValue();
    System.out.println("Selected date: " + date);
});

stage.setScene(
    new Scene(datePicker)
);
stage.show();

我需要stage值才能成功?我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

只需将您要添加DatePicker的窗格注入控制器,然后将DatePicker添加到控制台中。

@FXML
private VBox somePane ; // can be any kind of Pane, fx:id in fxml matches variable name
// ...

// in some handler method (or initialize):
final DatePicker datePicker = new DatePicker(LocalDate.now());
datePicker.setOnAction(...);
somePane.getChildren().add(datePicker);