如何在外接显示器上打开新舞台?

时间:2014-08-03 19:16:54

标签: java javafx external-display

我的笔记本电脑上插有外接显示器。我希望在全屏,未修饰和模态模式下在此外部屏幕上显示新的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();
        }
    }
});

0 个答案:

没有答案