如果我使用以下方法创建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。
谢谢!
Modality.WINDOW_MODAL
会阻止父窗口。请参考此处获取更多信息。 - undefinedstage.setMaximized(true);
! - undefined