我想阻止所有者窗口在JavaFX的一个弹出。
我初始化我弹出这样的:
popUp = new Popup();
popUp.getContent().add(content);
popUp.show(pane.getScene().getWindow());
有了这个,我还可以在第一个窗口(窗口窗格)工作。 我想禁用这个动作,我想用户只需工作在弹出。
这该怎么做 ?
谢谢。
我想阻止所有者窗口在JavaFX的一个弹出。
我初始化我弹出这样的:
popUp = new Popup();
popUp.getContent().add(content);
popUp.show(pane.getScene().getWindow());
有了这个,我还可以在第一个窗口(窗口窗格)工作。 我想禁用这个动作,我想用户只需工作在弹出。
这该怎么做 ?
谢谢。
使用一个阶段 ,而不是一个弹出 。
示出了阶段之前,调用stage.initModality如任一APPLICATION_MODAL或WINDOW_MODAL酌情。 还援引stage.initOwner到新阶段的父窗口,这样它会适当地阻止它的WINDOW_MODAL
情况。
Stage stage = new Stage();
stage.initModality(Modality.WINDOW_MODAL);
stage.initOwner(pane.getScene().getWindow());
stage.setScene(new Scene(content));
stage.show();
谢谢,最佳解决方案:例如用FXML载荷文件中:
@Override
public void start(Stage primaryStage) throws IOException {
Parent root = FXMLLoader.load(getClass().getResource("DialogView.fxml"));
primaryStage.initModality(Modality.APPLICATION_MODAL); // 1 Add one
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.initOwner(primaryStage.getScene().getWindow());// 2 Add two
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}