我有一个外接显示器插入我的笔记本电脑。我想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();
}
}
});