Как я могу открыть новую сцену на внешнем мониторе?
В моем ноутбуке подключен внешний монитор. Я хочу показать новый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();
}
}
});