0
아래의 코드를 사용하여 정보를 전달하지만 다른 방법을 알고 싶습니다. FXMLDocumentController의 이벤트 처리기 handleSubmitButtonAction에서 MainFXML 파일을로드하는 다른 창을 만듭니다. 그 후, 나는 컨트롤러를 잡고 메인 윈도우에 내 정보를 보냅니다. 그렇게 할 수있는 더 좋은 방법이 있습니까?JavaFX의 창 사이에 정보를 전달하는 가장 좋은 방법은 무엇입니까?
public class FXMLDocumentController implements Initializable {
@FXML
private TextField user;
@FXML
public void handleSubmitButtonAction(ActionEvent event) throws IOException {
Alert dialogo = new Alert(Alert.AlertType.INFORMATION, "User: " + user.getText() + " logged in.");
dialogo.showAndWait();
Stage stage2 = (Stage) user.getScene().getWindow();
stage2.close();
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("MainFXML.fxml"));
Parent root = (Parent) fxmlLoader.load();
MainFXMLController controller = fxmlLoader.<MainFXMLController>getController();
Scene scene = new Scene(root);
Stage stage = new Stage();
stage.setScene(scene);
stage.show();
controller.setUser(user.getText());
}
응용 프로그램을 MVC 개념의 싱글 톤 인스턴스 "컨트롤러"로 사용하고 있습니까? 예쁘지는 않지만 FX 컨트롤러 클래스를 분리합니다. –
가장 좋은 방법이 무엇인지 알고 싶습니다. 모든 javafx 애플리케이션은 fxml 파일 때문에 MVC입니다. 맞습니까? –
가장 좋은 방법은 의견 일뿐입니다. 누구나 다른 견해를 가질 수 있습니다. 따라서 서로 다른 의견을 바탕으로 여러 가지 답변을 얻을 수 있으며 최선의 방법을 결정하는 데 더 이상 도움이되지 않습니다. 어쨌든 IMO는 대용량 응용 프로그램 인 경우 [Gluon Ignite] (http://gluonhq.com/labs/ignite/)와 같은 종속성 주입 메커니즘을 사용하여 주입 된 객체에 JavaFX Bean을 관찰 가능한 속성으로 만들고 UI 항목을 갖습니다 속성의 변경 내용을 바인딩하거나 수신 대기합니다. 그러나 다른 한편으로는, 당신의 질문에 당신이 가지고있는 해결책이 당신에게 가장 좋을 수도 있습니다. – jewelsea