ラップトップに外付けモニターを接続しています。Stage
この外部画面にフルスクリーン、装飾なし、モーダルモードで新しいものを表示したい。これらすべてを純粋なJava/Swingの組み合わせで実現する方法は知っていますが、そのような機能のJavaFX実装に行き詰まっています。
私が知っているのは、Screen
たとえば画面リストを取得するために使用できる API があることです。
List<Screen> allScreens = Screen.getScreens();
...しかし、ここからどこに行けるかわかりません。
更新 : 2014/08/03 22:21
問題を解決する方法を見つけたので、それに対する私のアプローチを共有することにしました。これまでのところ、より良い解決策は見つかりませんでした。
Button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent ae) {
List<Screen> allScreens = Screen.getScreens();
if (allScreens.size() > 1) {
Screen secondaryScreen = allScreens.get(1);
Rectangle2D bounds = secondaryScreen.getVisualBounds();
Stage stage = new Stage();
stage.setX(bounds.getMinX());
stage.setY(bounds.getMinY());
stage.setWidth(bounds.getWidth());
stage.setHeight(bounds.getHeight());
stage.initStyle(StageStyle.UNDECORATED);
stage.initModality(Modality.APPLICATION_MODAL);
stage.show();
} else {
Stage stage = new Stage();
stage.setFullScreen(true);
stage.initStyle(StageStyle.UNDECORATED);
stage.initModality(Modality.APPLICATION_MODAL);
stage.show();
}
}
});