[英]Javafx: Open a new FXML from another Java Class
我有一个包含以下文件的JavaFx应用程序:
现在,假设我有另一个类文件Compute.java,它具有一个方法(例如doSomething())。 当该方法终止时,我希望在原始FXML文件的顶部打开一个内置的Alert框或一个自定义FXML文件(例如,状态为“工作已完成”的框)。
请为此提出一个整洁的解决方案(这不涉及将Compute.java的逻辑移动到任何其他文件或Controller.java。此外,我希望保持Compute.java的JavaFx代码清洁)。
建议:
由于主要的主要阶段(和场景)在MainApp中举行,
您可以将此类注入Compute
// in MainApp.java
Compute compute = new Compute();
compute.setMainApp(this);
之后,您致电
// in Compute.java
mainApp.showAlert(myTitle, myContent);
哪里
// in MainApp.java
public void showAlert(String myTitle, Node myContent) {
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle(myTitle);
alert.setHeaderText(null);
alert.getDialogPane.setContent(myContent);
alert.showAndWait();
}
// or your custom stage
public void showAlert(String myTitle, Node myContent) {
Stage dialogStage = new Stage();
dialogStage.initModality(Modality.WINDOW_MODAL);
dialogStage.setScene(new Scene(new VBox(new Label(myTitle), myContent));
dialogStage.show();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.