Выберите, какой монитор открывает окно JavaFX в
У меня есть два монитора. У меня Eclipse открыт на втором мониторе, но когда я запускаю свой код JavaFX, окно JavaFX всегда открывается на первом мониторе, и каждый раз, когда мне приходится перетаскивать его на второй монитор, чтобы использовать его.
Я должен сделать это, потому что, когда он открывается на первом мониторе, ни один из компонентов внутри сцены не загружается. Он загружается только если я перетаскиваю его на второй монитор. Но когда я отключаю второй монитор, он загружается правильно.
Может кто-нибудь помочь мне? Как мне, по умолчанию, заставить окно открываться на втором мониторе?
NB. Мой первый монитор - Macbook Pro, а второй - iMac, используемый в качестве внешнего монитора.
Отвечая на комментарии, сделанные:
Проблема неправильной загрузки компонентов на screen1 возникает с любым простым кодом javaFX. Например, для удобства я беру код, который @Sergey дал в качестве ответа.
код:
public class FXScreens extends Application {
@Override
public void start(Stage stage) {
VBox root = new VBox(10);
root.setAlignment(Pos.CENTER);
Scene scene = new Scene(root, 200, 250);
int index = 1;
for (Screen screen : Screen.getScreens()) {
Rectangle2D bounds = screen.getVisualBounds();
Button btn = new Button("Move me to Screen " + index++);
btn.setOnAction((e) -> {
stage.setX(bounds.getMinX() + 100);
stage.setY(bounds.getMinY() + 100);
});
root.getChildren().add(btn);
}
stage.setTitle("Screen Jumper");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Когда я запускаю это с screen2 либо с помощью eclipse, либо с терминала, это то, что появляется на экране 1:Изменение размера окна не показывает мне компоненты, а только увеличивает их. Я также не могу нажимать на кнопки.
Когда я перетаскиваю это на экран 2, оно становится таким:
Если два других монитора все еще подключены, если я перетаскиваю eclipse на screen1 и запускаю оттуда код, он загружается правильно:
Я должен также добавить, что, как только я перетащил его на другой экран и компоненты были загружены, они хорошо работают на любом экране.