次の方法を使用して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();
}
それが最大化されている場合、ower ウィンドウは移動します。これは、次を使用した場合にも発生します。
Modality.APPLICATION_MODAL
組み合わせると機能します:
dialogStage.initModality(Modality.WINDOW_MODAL);
dialogStage.initOwner(primaryStage.getOwner());
ただし、この場合、所有者ウィンドウはブロックされません。ダイアログを移動せずに、最大化されたウィンドウに表示したい。ダイアログが開いている間は、最大化されたウィンドウをブロックする必要があります。これどうやってするの?
ところで。LinuxでJava 8とjavafxを使用しています。
タンク!