Dieses Problem wurde ein paar Mal beim Erstellen dieser Anwendung verursacht und behindert nun wirklich unsere Funktionalität. Das Problem begann, als meine andere Entwickler (mit einem mac) versucht, unsere Anwendung zu laufen, wenn ich eine Zeile Code auf die Bühne geändert beeinflussen:Sind einige JavaFX-Layouts nicht mit Mac-Computern kompatibel?
Screen screen = Screen.getPrimary();
Rectangle2D bounds = screen.getVisualBounds();
overallStage.setX(bounds.getMinX());
overallStage.setY(bounds.getMinY());
overallStage.setWidth(bounds.getWidth());
overallStage.setHeight(bounds.getHeight());
Dies war die Maximierung des Bildschirms zu ermöglichen, nachdem der Benutzer anmeldet. Nachdem sich der Mac-Benutzer angemeldet hat, wird die Bühne stattdessen in ein kleines Fenster in der unteren linken Ecke minimiert und verschwindet dann. Eine ähnliche Sache passiert jetzt mit einem neuen Zusatz, den ich gemacht habe.
Ich habe diese zusätzlich eine Seite im Menü innerhalb der Anwendung zu integrieren. Wie Sie sehen können, habe ich die gesamte Szene in einen Stapelbereich und dann Ankerbereich (siehe Hierarchie) mit einem externen Ankerbereich für das Seitenmenü gelegt. Jetzt kommt genau das gleiche vor, wo es minimiert und auf zwei verschiedenen Macs verschwinden würde, Windows ist völlig in Ordnung.
Irgendetwas führt mich zu der Annahme, dass einige Layouts und Bühneneinstellungen nicht mit Macs kompatibel sind, da es erst nach dem Umhüllen der Hauptszene erneut auftrat. Hat jemand dieses Problem erfahren oder weiß, wie man es repariert?
Wirklich gute Frage! – Milan
Der eigentliche Layout-Code ist in Java geschrieben, sollte also auf jedem System dasselbe tun (zumindest wenn auf den Systemen die gleiche JDK-Version läuft). Die 'Screen'-API (' Screen.getPrimary() 'und' screen.getVisualBounds() ') muss offensichtlich mit dem nativen System kommunizieren und möglicherweise einige Koordinatentransformationen durchführen. Können Sie protokollieren, welche Werte Sie für die Bildschirmgrenzen auf den verschiedenen Systemen erhalten? Welche JDK-Version wird auf jedem System ausgeführt? Einige frühere JDK-Versionen auf Mac hatten Bugs, die native Bildschirmkoordinaten in das von JavaFX verwendete Koordinatensystem transformierten. –