Mam dwa monitory. Mam Eclipse otwarte na drugim monitorze, ale kiedy uruchamiam mój kod JavaFX, okno JavaFX zawsze otwiera się na pierwszym monitorze i za każdym razem muszę go przeciągnąć na drugi monitor, aby go użyć.Wybierz monitor, który ma otwarte okno JavaFX w
Muszę to zrobić, ponieważ kiedy otwiera się na pierwszym monitorze, żaden z komponentów wewnątrz sceny nie jest załadowany. Ładuje się tylko wtedy, gdy przeciągnę go na drugi monitor. Ale kiedy odłączę drugi monitor, ładuje się prawidłowo.
Czy ktoś może mi pomóc? Jak domyślnie otworzyć okno na drugim monitorze?
Uwaga: moim pierwszym monitorem jest MacBook Pro, a drugim jest iMac używany jako monitor zewnętrzny.
Odpowiadając uwagami:
Problem składniki nie ładuje poprawnie na screen1 dzieje się z każdym prostego kodu JavaFX. Na przykład i dla wygody, biorę kod, który @Sergey podał jako odpowiedź.
Kod:
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);
}
}
Kiedy uruchomić ten od Screen2 albo z Eclipse lub z terminala, to jest to, co na ekranie 1 pojawi się: Zmiana rozmiaru okna nie pokazuje mi składników, ale tylko zoomy im. Nie mogę również kliknąć przycisków.
Kiedy przeciągnij na ekranie 2, staje się tak:
z dwoma innymi monitory wciąż podłączony, jeśli przeciągnij eclipse do screen1 i uruchomić kod Stamtąd ładuje poprawnie:
Powinienem również dodać, że po przeciągnięciu go na inny ekran i załadowaniu komponentów, działają one dobrze na każdym ekranie.
Możliwe, że uda ci się coś wypracować za pomocą 'Ekranu '. Zobacz [tutaj] (https://community.oracle.com/thread/2593365?tstart=0) (Brak czasu na wykonanie pełnej odpowiedzi w tym momencie). – Itai
Zgadzam się z @sillyfly na użycie 'Screen'. Jednak z twojego opisu, ładowanie treści tylko na drugim ekranie wydaje mi się, że jest coś poważnie nie tak lub czy to zamierzone zachowanie? Jeśli nie, należy zbadać to i naprawić, zamiast implementować obejście. – hotzst
Czy możesz podać przykład, który mógłbym przetestować na mojej konfiguracji z dwoma monitorami? –