Я пытаюсь заполнить TextField из сцены значением, выбранным в другой сцене.
Итак, есть сцена (я назову ее родительской сценой) с TextField и кнопка, которая открывает другуюсцена (я назову это детской сценой).Дочерняя сцена имеет TableView, выбранное значение которого я хочу установить в TextField родительской сцены.Я знаю, как это сделать, только если сцена с TextField еще не открыта, в моем случае сцена дочерней сцены устанавливается как showAndWait.Поэтому я думаю, что мне нужно получить сцену родительской сцены и установить ее в поле stage в методе select () ниже от дочернего контроллера.
// метод из дочернего контроллера, вызываемый при выборе строки из табличного представления
public void select() throws IOException
{
Class class = (Class)table.getSelectionModel().getSelectedItem();
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getClassLoader().getResource("parentStage.fxml"));
Parent parent = loader.load();
Stage stage = // here i need to pass the parent stage I think;
stage.initModality(Modality.APPLICATION_MODAL);
ParentController parentController = loader.getController();
table.setOnMouseClicked(event -> {
if(event.getClickCount()==2){
parentController.setTextField(new TextField(class.getValue()));
stage.setScene(new Scene(parent));// also,
I think, here it should be passed the already opened parent scene
stage.show();
((Node)(event.getSource())).getScene().getWindow().hide();
} });
// это метод для кнопки из родительской сцены, которая открывает дочернюю сцену
public void add() throws IOException
{
Parent parent = FXMLLoader.load(getClass().getClassLoader().getResource("childStage.fxml"));
stage = new Stage();
stage.initModality(Modality.APPLICATION_MODAL);
stageProdusNou.setScene(new Scene(parent));
stageProdusNou.showAndWait();
}
Спасибо.