javafx实现模态/模式窗口
import javafx.stage.*; import javafx.scene.*; import javafx.scene.paint.Color; import javafx.scene.control.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; public class ModalDialog { Button btn; public ModalDialog(final Stage stg) { btn = new Button("OK"); final Stage stage = new Stage(); //Initialize the Stage with type of modal stage.initModality(Modality.APPLICATION_MODAL); //Set the owner of the Stage stage.initOwner(stg); stage.setTitle("Top Stage With Modality"); Group root = new Group(); Scene scene = new Scene(root, 300, 250, Color.LIGHTGREEN); btn.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent event) { stage.close(); } }); btn.setLayoutX(100); btn.setLayoutY(80); root.getChildren().add(btn); stage.setScene(scene); stage.show(); } }
代码2:
import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.paint.Color; import javafx.stage.Stage; public class ModalTest extends Application { /** * @param args the command line arguments */ public static void main(String[] args) { Application.launch(ModalTest.class, args);
// launch(args); } @Override public void start(final Stage primaryStage) { primaryStage.setTitle("Hello World"); Group root = new Group(); Scene scene = new Scene(root, 500, 450, Color.LIGHTBLUE); Button btn = new Button(); btn.setLayoutX(250); btn.setLayoutY(240); btn.setText("Show modal dialog");
btn.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent event) { ModalDialog md = new ModalDialog(primaryStage); } }); root.getChildren().add(btn); primaryStage.setScene(scene); primaryStage.show(); } }