2

我有一个外接显示器插入我的笔记本电脑。我想Stage在这个外部屏幕上以全屏、未装饰和模态模式显示一个新的。我知道如何在纯 Java/Swing 组合中实现所有这些,但我坚持使用 JavaFX 实现此类功能。

我知道,有一个ScreenAPI,我可以使用它来获取屏幕列表,比如:

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();
        }
    }
});
4

0 回答 0