sinnvolle idee? (contentpane wechsel)

HCWD

Erfahrenes Mitglied
Servus.

Ich hab folgende Theoriefrage:

Situation: Ich habe ein Programm, dass Inforamtionen aus einer Datenbank abruft und sie in einem Formular ausgibt, welche man entsprechend bearbeiten kann.

Folgender Gedanke: Ich würd gerne, durch eine Menüauswahl es erreichen, im gleichen Fenster (jFrame) ein anderes Formular zu laden. Deswegen gleiches Fenster, weil ich will die Informationen, die ich entsprechend initialisiert habe in den Variablen, Arrays und Vectoren, beibehalten (SQL Verbindung soll auch bleiben).

Gedanke: Wäre es sinnvoll, einen 2. Contentpane zu erstellen in der gleichen File und ihn auf Menüknopfdruck zu laden, damit ein andere Formular (das ich natürlich selbst vorher erstelle nur nicht sichbar habe) angezeigt bekomme?

Berichtigt mich, gibt Tipps oder eigene Beispiele, bitte. Bin für alles offen ^^

Greetz
 
Moin!
Folgender Gedanke: Ich würd gerne, durch eine Menüauswahl es erreichen, im gleichen Fenster (jFrame) ein anderes Formular zu laden. Deswegen gleiches Fenster, weil ich will die Informationen, die ich entsprechend initialisiert habe in den Variablen, Arrays und Vectoren, beibehalten (SQL Verbindung soll auch bleiben).

Das ist eher ein schlechtes Design. Eine SQL-Verbindung und wichtige Datenstrukturen haben eigentlich nichts in der GUI zu suchen(Stichwort Model-View-Control Pattern). Aber das nur am Rande.

Zu deiner Frage:
Du solltest ein ContentPane nutzen, und diesem dann ein CardLayout zuweisen:
http://java.sun.com/javase/6/docs/api/java/awt/CardLayout.html
Das ist genau für solche Sachen gedacht..

*grüssle*
MeinerEiner
 
Danke erstmal. Hat mich ein großes Stück weitergebracht.

Zu deinem Hinweis hab ich noch ne Frage. Kannst du mir mal ein Gedankenstubs geben, wie man es anstellen soll? Vielleicht bring ich jetzt was durcheinander (Bitte korrigiere mich), aber wenn ich jetzt die Daten mit dem GUI teile, müsste ich doch die Variablen static setzen und somit public, wenn ich von einer anderen Klasse drauf zugreifen würde.

Jetzt ist mir etwas mein Strukturbild somit durcheinander geraten.
Also mal Klartext: in der MAIN() Class sollte ich alles laufen lassen (SQL, Vars für das Programm etc.) und alles GUI relevante eben in die jFrame-Klasse reinstopfen?

Greetz

HCWD
 
Moin!
Wie man was aufteilt, kommt schon auch ein wenig auf das Programm selbst an. Alles streng nach Design-Pattern Vorschrift zu machen, lohnt halt nicht immer. Aber das muss der Programmierer dann immer selbst entscheiden, wieviel Arbeit er sich machen will, bzw. wie flexibel sein Programm sein soll.

Bei dir wäre es aber sicher von Vorteil, wenn du alle Daten, die von mehreren GUI Klassen benötigt werden, in eine oder mehrere Model Klassen auslagerst.
Damit du sicherstellen kannst, dass auch jede GUI Klasse auf dieselben Daten zugreift, bietet sich beispielsweise das Singleton Pattern an.(Einfach mal danach googlen, wenn du das nicht kennst.)
Die SQL Verbindung ist ja eher eine "Control" Sache. Also, alles was mit der Verwaltung der Verbindung zu tun hat, sollte auch in eine eigene Klasse / in eigene Klassen.

Alles so aufzuteilen ist natürlich schon ein bisschen Mehraufwand. Ob der sich lohnt, musst du selbst entscheiden. Hängt sicherlich ab, wie groß dein Projekt ist, ob es oft erweitert werden muss, beziehungsweise, ob Teile ausgetautscht werden sollen..

*grüssle*
MeinerEiner
 
aha.... Nun gut. Das macht mir die Sicht schon viel klarer. Dann werd ich mir mein Projekt nochmal vornehmen und es erstmal entsprechend auf einem Blattpapier per UML aufteilen, wie du es geraten hast.

Dann komm ich vielleicht sogar selbst weiter wie ich mein Problem leichter lösen kann.
 
Zurück