Meine Fragen beziehen sich nicht darauf, wie mache ich ein Panel oder wie funktionieren Layouts.
Diese Basics sind bekannt und sollen hier kein direktes Thema sein.
Mir geht es um die geschickte Verwaltung von Ansichten bzw. Panels.
Ich habe bisher meine GUIs mit dem von Netbeans mitgebrachten Editor zusammengestrickt.
Für den Anfang war das bequem und ging schnell.
Aber jetzt wird es immer komplizierter und die GUIs reagieren unverständlicherweise nicht mehr so, wie sie eigentlich sollen.
Ich möchte also meine GUIs selber zusammenbauen, damit ich die volle Kontrolle habe.
Mein Design soll grundsätzlich ein Frame sein mit Menubar.
Darin möchte ich eine zwei Seiten Struktur haben, ähnlich wie man das von jeder x-beliebigen Website her kennt. Links ein Menü das auf die jeweilige Bearbeitungssituation passt, rechts der content zum jeweiligen Menüpunkt.
Dabei soll die Linke Seite prozentual immer eine bestimmte bzw. maximale Grösse haben. Der Content erhält den Rest. Im Content wird dann nur die gewünschte Information nachgeladen.
(1) Wie erreiche diese Aufteilung am besten?
Ich habe bereits mit Panels experimentiert. Das Ergebnis ist aber nicht zufriedenstellen. Die Größe des Frames konnte ich nicht korrekt auslesen. Weder mit getSize, getHeight, getBoundaries, um die Panels dann entsprechend anzupassen.
Außerdem ist das alles recht statisch und die Anpassungen müssen bei jedem ändern der Framegröße wieder geändert werden. Ich initialisiere den Frame zu Beginn mit
damit ich das Programm schön im Vollbild habe. Mit oben erwähnten Methoden erhalte ich aber immer nur 0 als Größe und kann somit die Panels nicht prozentual einrichten. Ohnehin erscheint es mir keine "saubere" Lösung.
GridLayout habe ich nicht geschafft prozentual anzulegen. Meines Wissens ist das auch nicht vorgesehen.
Daher meine Frage an euch, gibt es für so etwas eine Kardinalslösung die gut zu verwalten ist und einen vorzeigbaren Code produziert?
(2) Wie kann man das Nachladen des Content am geschicktesten lösen?
Ich habe schon begonnen mir mal eine Methode zu schreiben, die das jeweils entsprechende Panel zurückgibt, je nach dem welcher Menüpunkt gewählt wurde und welche Situtation herscht.
Aber die Rückgabe erfolgt immer wieder mit new Panel(content).
Was wäre hier die bessere Strategie?
Alle Panels mit new zu initialisieren und dann nur noch darauf zu verweisen?
Oder immer nur dann das Panel neu anzulegen, wenn es gebraucht wird?
Gibt es bereits für solche Abwicklungen eine existierende Lösung die Java bereithält?
Ich solche also insgesamt etwas das besser funktioniert und höheren Komplexitätsgraden genügt, ohne dabei ständigen Anpassungen ins Auge zu sehen.
Derzeit ist es halt ein mit den Grundlagen zusammengestecktes System, dass jetzt den Kinderschuhen entwächst und nach ausgefeilteren Methoden verlangt.
Ich hoffe ihr könnt mir den richtigen Weg weisen.
Diese Basics sind bekannt und sollen hier kein direktes Thema sein.
Mir geht es um die geschickte Verwaltung von Ansichten bzw. Panels.
Ich habe bisher meine GUIs mit dem von Netbeans mitgebrachten Editor zusammengestrickt.
Für den Anfang war das bequem und ging schnell.
Aber jetzt wird es immer komplizierter und die GUIs reagieren unverständlicherweise nicht mehr so, wie sie eigentlich sollen.
Ich möchte also meine GUIs selber zusammenbauen, damit ich die volle Kontrolle habe.
Mein Design soll grundsätzlich ein Frame sein mit Menubar.
Darin möchte ich eine zwei Seiten Struktur haben, ähnlich wie man das von jeder x-beliebigen Website her kennt. Links ein Menü das auf die jeweilige Bearbeitungssituation passt, rechts der content zum jeweiligen Menüpunkt.
Dabei soll die Linke Seite prozentual immer eine bestimmte bzw. maximale Grösse haben. Der Content erhält den Rest. Im Content wird dann nur die gewünschte Information nachgeladen.
(1) Wie erreiche diese Aufteilung am besten?
Ich habe bereits mit Panels experimentiert. Das Ergebnis ist aber nicht zufriedenstellen. Die Größe des Frames konnte ich nicht korrekt auslesen. Weder mit getSize, getHeight, getBoundaries, um die Panels dann entsprechend anzupassen.
Außerdem ist das alles recht statisch und die Anpassungen müssen bei jedem ändern der Framegröße wieder geändert werden. Ich initialisiere den Frame zu Beginn mit
Java:
this.setExtendedState(Frame.MAXIMIZED_BOTH);
GridLayout habe ich nicht geschafft prozentual anzulegen. Meines Wissens ist das auch nicht vorgesehen.
Daher meine Frage an euch, gibt es für so etwas eine Kardinalslösung die gut zu verwalten ist und einen vorzeigbaren Code produziert?
(2) Wie kann man das Nachladen des Content am geschicktesten lösen?
Ich habe schon begonnen mir mal eine Methode zu schreiben, die das jeweils entsprechende Panel zurückgibt, je nach dem welcher Menüpunkt gewählt wurde und welche Situtation herscht.
Aber die Rückgabe erfolgt immer wieder mit new Panel(content).
Was wäre hier die bessere Strategie?
Alle Panels mit new zu initialisieren und dann nur noch darauf zu verweisen?
Oder immer nur dann das Panel neu anzulegen, wenn es gebraucht wird?
Gibt es bereits für solche Abwicklungen eine existierende Lösung die Java bereithält?
Ich solche also insgesamt etwas das besser funktioniert und höheren Komplexitätsgraden genügt, ohne dabei ständigen Anpassungen ins Auge zu sehen.
Derzeit ist es halt ein mit den Grundlagen zusammengestecktes System, dass jetzt den Kinderschuhen entwächst und nach ausgefeilteren Methoden verlangt.
Ich hoffe ihr könnt mir den richtigen Weg weisen.