Frage

Wurde ein Spiel für eine Weile zu entwickeln, und zur Zeit die GUI arbeitet daran, oder zumindest versuchen zu. Hat das massive Problem der nicht den Rahmen zu können (ohne Probleme), um die Größe, da ich nicht sehr gut Layout-Manager verstehen. Einige Projekte später, und die Zeit wieder zu kommen und einige mehr auf dem Spiel zu tun, und ich traf ein Problem ...

Das grundlegende Layout des Hauptrahmens ist, mainPane, enthaltend ein gameScrollPane und ein Controlpanel. Die Scroll-Scheibe ist ein Bildlauffenster und das Bedienfeld einer normale Platte. Der Scroll-Bereich enthält das Hauptspiel Panel.

Als ich die Bildlauffenster zu nehmen fast der gesamten Bildschirm, mit dem Bedienfeld der Aufnahme einen kleinen unteren Bereichs, ähnlich wie viele Sim wie Spiele wollte, entschied so das Border-Layout für den mainPane. I hinzugefügt, um die Bildlauffenster und stellen die Nebenbedingungen Zentrum und die Systemsteuerung hinzugefügt und constriants SOUTH. Das ist nicht die Bildlauffenster zeigen, so spielte ich verschiedene Zwänge versuchen, um, und es scheint, dass nur dann, wenn ich das Bildlauffenster Einschränkung Nord gesetzt, es überhaupt nicht angezeigt werden soll.

Um dies zu demonstrieren, habe ich ein kurzes Video erstellt ... http://screenjel.ly/q5RjczwZjH8

Wie Sie sehen können, wenn ich den Wert von NORTH zu CENTER und wieder laufen zu ändern, es ist wie es ist nicht da!

Bonuspunkte für jeden, der ein klares zweites Problem sehen kann, die ich noch eine Frage für die Zeit nach dieser Ausgabe beginnen kann, ist gelöst!

Ich danke Ihnen für Ihre Zeit, dies zu lesen.

Vielen Dank im Voraus für alle Ideen oder Gedanken:)

Rel

War es hilfreich?

Lösung

Ich kann das Video nicht bekommen zu zeigen. Es ist seit Alters Pufferung.

Meine Vermutung wäre, dass der scrollpane in der Tat ist das Zentrum füllt; es ist nur Ihre Spielkonsole, der nicht gezeigt wird.

Ihre Spielkonsole braucht vernünftige Werte für getPreferredSize() zurückzukehren.

Aktualisieren

Eine andere Sache, die Sie wünschen können, ist zu tun haben Ihre Spielkonsole die Scrollable-Schnittstelle implementieren. Sie können dann außer Kraft setzen getScrollableTracksViewportWidth und ...height true zurückzukehren, damit Ihr Panel wird auf die scrollpane Dimensionen gezwungen werden.

Andere Tipps

Wenn Sie es etwas Code geschrieben beginnen dann könnten Sie eine wirklich schnelle Antwort bekommen. Zum Glück geschrieben Sie einen Link in den Kommentaren der anderen Antwort.

Die setContentPane () Material ist seltsam, vor allem nach ein paar Dinge, um es zu tun, die aus erhalten wird dann abgewischt. Allerdings, das ist nicht Ihr Problem.

Das Problem ist, dass Sie levelMaker und personMover Recht auf mainPane ohne Einschränkungen hinzufügen. Diese werden dann bläst entfernt alles, was Sie für CENTER eingestellt ... in diesem Fall wird die zuvor eingestellte gameScrollPane.

Das ist, warum Sie es für NORTH sehen und nicht für CENTER.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top