본문 바로가기

JavaFX

[JavaFX] JavaFX 새 팝업창에 Parameter 데이터 전송

JavaFX에서 fxml으로 새창을 띄울때 파라미터도 같이 전달할 수 있다.

 

  • 새 창 fxml 화면
  • fxml 컨트롤러 생성 후 TextField에 데이터 입력
  • 부모 창에서 fxml 로드 후 파라미터 전송

새 창 popup.fxml 화면을 만든다.

 

<AnchorPane fx:controller="PopupController">
  <children>
    <Label text="전송받은 데이터"/>
    <TextField fx:id="text" />
  </children>
</AnchorPane>

 

 

PopupController 클래스에서 데이터를 받아 TextField에 데이터 입력

 

public class PopupController implements Initializable {
  @FXML private TextField text;
  
  @Override
  public void initialize(URL location, ResourceBundle resources){
  }
  
  public void initData(String data) {
    text.setText(data);
  }
}

 

 

부모 컨트롤러에서 popup창을 띄우고 데이터 전송

 

@FXML
private void sendData() {
  FXMLLoader loader = new FXMLLoader();
  loader.setLocation(getClass().getResource("popup.fxml"));
  Parent root = (Parent) loader.load();
  Scene scene = new Scene(root);
  
  PopupController pop = loader.getController();
  pop.initData("parameter data");
  
  Stage stage = new Stage();
  stage.setScene(scene);
  stage.show();
}