我正在嘗試使用在另一個場景中選擇的值從一個場景填充 TextField。所以有一個場景(我稱之為父場景),帶有一個 TextField 和一個打開另一個場景的按鈕(我稱之為子場景)。子場景有一個 TableView,我想將其選擇的值設(shè)置為父場景的 TextField。只有當(dāng)帶有 TextField 的場景尚未打開時,我才知道如何執(zhí)行此操作,在我的例子中,子場景的舞臺被設(shè)置為 showAndWait。所以我想我需要獲取父場景的舞臺并將其設(shè)置為子控制器下面 select() 方法中的舞臺字段。// 來自子控制器的方法,當(dāng)從 tableview 中選擇一行時調(diào)用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(); }
添加回答
舉報
0/150
提交
取消