2016-04-18 8 views
1

私はいくつかのアラート/ダイアログを表示するJavaFxアプリケーションを持っていますが、マルチスクリーン環境では、アプリケーションをセカンダリ画面に移動すると、それらのアラート/ダイアログはプライマリ画面に表示されます。JavaFxアプリケーションのウィンドウが表示され、そこにダイアログを表示する画面を検出するにはどうすればいいですか?

これらの(非モーダル)ダイアログをアプリが同じ画面に表示するにはどうすればよいですか?

答えて

1

あなたは自分のダイアログの所有者に設定する必要があります:あなたは、

dialog.initOwner(primaryStage)

をそして、あなたはアプリが表示された画面た上で検出するためにprimaryStage.show()

前にそれを呼び出すことはありませんことを確認してください

private boolean isOnPrimaryScreen(double x) { 
    Rectangle2D bounds = Screen.getPrimary().getBounds(); 
    return x <= bounds.getMaxX(); 
} 
+1

'initOwner'(とControlFxの' owner')は期待どおりに動作します、ありがとうございます。 – Saran

+0

あなたの 'isOnPrimaryScreen'は両方の/すべてのスクリーンが同じ次元の場合、偽陽性を返さないでしょうか? :o – Saran

+0

ステージが第2の画面にあるときにstage.getX()を呼び出すと、x座標が第1の画面の幅に加算されます – jns

関連する問題