JavaFX example to open new Window, and exit all when primary window close.
package javafxwindow; import javafx.application.Application; import javafx.application.Platform; import javafx.event.ActionEvent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.layout.StackPane; import javafx.stage.Stage; /** * * @web http://java-buddy.blogspot.com/ */ public class JavaFXWindow extends Application { @Override public void start(Stage primaryStage) { Button btn = new Button(); btn.setText("Open a New Window"); btn.setOnAction((ActionEvent event) -> { Label secondLabel = new Label("Hello"); StackPane secondaryLayout = new StackPane(); secondaryLayout.getChildren().add(secondLabel); Scene secondScene = new Scene(secondaryLayout, 200, 100); Stage secondStage = new Stage(); secondStage.setTitle("New Stage"); secondStage.setScene(secondScene); secondStage.show(); }); StackPane root = new StackPane(); root.getChildren().add(btn); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("java-buddy.blogspot.com"); primaryStage.setScene(scene); primaryStage.show(); primaryStage.setOnCloseRequest(e -> Platform.exit()); } public static void main(String[] args) { launch(args); } }
You forget to use setOwner like Adobe Air has multiple windows if you close primary window when all second window will exit since your click to primary window. I don't know if JavaFX has setOwned or isOwned from Stage class.
ReplyDelete