3

次の方法を使用して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を使用しています。

タンク!

4

0 に答える 0