如果我使用以下方法创建 javafx 对话框:
public static void showDialog(Event event) throws IOException {
dialogStage = new Stage();
GridPane grid = (GridPane) Start.createLoader().load(Start.class.getResource("file.fxml").openStream());
dialogStage.setScene(new Scene(grid));
dialogStage.setTitle("Title");
dialogStage.initModality(Modality.WINDOW_MODAL);
dialogStage.initOwner(((Node) event.getSource()).getScene().getWindow());
dialogStage.showAndWait();
}
如果窗口最大化,则窗口会移动。如果我使用,也会发生这种情况:
Modality.APPLICATION_MODAL
如果我结合它,它会起作用:
dialogStage.initModality(Modality.WINDOW_MODAL);
dialogStage.initOwner(primaryStage.getOwner());
但在这种情况下,所有者窗口不会被阻止。我希望我的对话框显示在最大化的窗口上而不移动它。对话框打开时应阻止最大化窗口。我怎样才能做到这一点?
顺便提一句。我在 Linux 上使用 java 8 和 javafx。
坦克!