Das Programm das ich schreibe verläuft linear-sequentiell, d.h. es gibt einen "Startbildschirm" mit einem "Weiter"-Button. Wenn weiter gedrückt wird, soll sich die Anzeige und daher auch das Layout gravierend ändern.
0. Ansicht:
Der JFrame enthält ein Panel, nichts weiter.
1. Ansicht: In der Mitte ist ein Panel und untendrunter zwei Buttons. Das löse ich mit BorderLayout (Das Pane kommt nach CENTER) im JFrame und BoxLayout auf der SOUTH Seite des JFrames, wo die Buttons rein kommen
2. Ansicht: Es gibt wieder ein Panel in der Mitte. Untendrunter ist nur noch ein Button. Aber ein anderer Button als bei der ersten Ansicht.
3. Ansicht: Links ist ein JPanel und rechts sind mehrere editierbare Textfelder. Eventuell sind JPanel und die editierbaren Textfelder auch untereinander angeordnet.
Es muss mehrmals zwischen den verschiedenen Ansichten hin- und her geschaltet werden, es ist auch nicht auszuschließen, dass noch ein oder zwei weitere Ansichten hinzu kommen.
Es fallen mir verschiedene Lösungsmöglichkeiten ein, ich bin mir aber nicht sicher welches die beste ist:
Lösung 1: Für jede Ansicht eine eigene Klasse als Subklasse von JFrame schreiben. Bei einem Wechsel der Ansicht wird das erste Fenster geschlossen und ein frisches aufgemacht (geht das so schnell, dass es der Anwender nicht merkt?).
Lösung 2: Soviele Panels wie es Ansichten gibt in das JFrame legen und den Panels jeweils ein anderes Layout geben. Die gerade nicht benötigten Ansicht sind dabei auf visible(false) geschaltet.
0. Ansicht:
Der JFrame enthält ein Panel, nichts weiter.
1. Ansicht: In der Mitte ist ein Panel und untendrunter zwei Buttons. Das löse ich mit BorderLayout (Das Pane kommt nach CENTER) im JFrame und BoxLayout auf der SOUTH Seite des JFrames, wo die Buttons rein kommen
2. Ansicht: Es gibt wieder ein Panel in der Mitte. Untendrunter ist nur noch ein Button. Aber ein anderer Button als bei der ersten Ansicht.
3. Ansicht: Links ist ein JPanel und rechts sind mehrere editierbare Textfelder. Eventuell sind JPanel und die editierbaren Textfelder auch untereinander angeordnet.
Es muss mehrmals zwischen den verschiedenen Ansichten hin- und her geschaltet werden, es ist auch nicht auszuschließen, dass noch ein oder zwei weitere Ansichten hinzu kommen.
Es fallen mir verschiedene Lösungsmöglichkeiten ein, ich bin mir aber nicht sicher welches die beste ist:
Lösung 1: Für jede Ansicht eine eigene Klasse als Subklasse von JFrame schreiben. Bei einem Wechsel der Ansicht wird das erste Fenster geschlossen und ein frisches aufgemacht (geht das so schnell, dass es der Anwender nicht merkt?).
Lösung 2: Soviele Panels wie es Ansichten gibt in das JFrame legen und den Panels jeweils ein anderes Layout geben. Die gerade nicht benötigten Ansicht sind dabei auf visible(false) geschaltet.