ステージがフルスクリーン モードのときに、アプリケーションでダイアログを表示しようとすると、奇妙な動作が発生します。
アプリケーションをスタンドアロン アプリとして起動している間は、すべて問題なく動作します。ブラウザーから実行すると、モーダル ダイアログでステージが全画面表示から外れます。ただし、実際にはフルスクリーン モードから「外れる」わけではありません... コードはまだフルスクリーン (fullscreenProperty == true) であると認識していますが、フルスクリーンとして表示されません。また、ダイアログを閉じた後に を押すESCと (フルスクリーン モードが解除されます)、アプリケーションがクラッシュします。
サンプルコードは次のとおりです。
public class Test1 extends Application {
@Override
public void start(final Stage primaryStage) {
Button btn = new Button();
btn.setText("Say 'Hello World'");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
Stage dialogStage = new Stage(StageStyle.UTILITY);
dialogStage.initModality(Modality.APPLICATION_MODAL);
dialogStage.setScene(new Scene(VBoxBuilder.create().
children(new Text("Hi"), new Button("Ok.")).
alignment(Pos.CENTER).padding(new Insets(5)).build()));
dialogStage.initOwner(primaryStage);
dialogStage.show();
System.out.println(primaryStage.isFullScreen());
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
Rectangle2D r = Screen.getPrimary().getBounds();
Scene scene = new Scene(root, r.getWidth(), r.getHeight());
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.setFullScreen(true);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
これを解決する方法はありますか?または、ステージ ダイアログの代わりに使用できるアイデアはありますか?
前もって感謝します。