GUI-aufteilung

Pez

Neues Mitglied
Ich bin gerade dabei eine Anwendung zu schreiben, bei der man eine Person in einer Datenbank hinzufügen,ändern, suchen oder löschen kann. Je nach auswahl, die über eine Menubar erfolgt will ich, dass in meinem Frame ein anderes Panel angezeigt wird. Mein Problem ist nur, dass ich nicht weiß, wie ich darauf zugreifen kann.
Ich würde gerne alle 4 Panels in den Hauptframe laden und je nach Auswahl 1 Visible und die anderen 3 nicht Visible stellen.
Ich steh nur gerade ziemlich auf der Leitung und frage mich,wie ich vom Menü, dass Teil des Hauptframes ist die Visibility der Panels umschalten kann. Habe zwar schon Referenzen auf die Panels in die Menüklasse übergeben, bekomme aber dauernd NullPointer-Exceptions.....

Ich hoffe jemand kann mich von der Leitung runterheben, damit ich weiter machen kann.
Danke
 

sibianu

Mitglied
Du kannst die Funktion getComponent(n) von deinem Hauptframe aufrufen. Damit hast du Zugriff auf alle Objekte, die sich auch dem Hauptframe befinden. "n" ist abhängig von der Reihenfolge wie du die Komponente auf dem Hauptframe plazierst. Wenn du die Reihenfolge nicht kennst kannst du deiner 4 Panels verschiedene Namen geben und dann gehst du mit Hilfe einer For-Schleife alle´Komponenten des Hauptframes durch und schaust nach den Namen bis du den richtigen hast.
 

Pez

Neues Mitglied
Danke für die schnelle antwort.

hm, da sagt er mir immer, dass es so ein child nicht gibt ..... array index out of bounds

aber anscheinend arbeitet mein hirn heute nicht mehr.

nur noch so zur Info (Klassenstruktur):

Menu
Mainframe -> Panel1
Panel2
Panel3
Panel4

wenn ich nun im menu auf "add" klicke, soll panel1 angezeigt werden, bei "change" panel2 usw.

mach ich das falsch, wenn ich im mainframe mein menu anlege und ihm den frame selbst übergebe, damit man aus dem menü heraus die visibility der panels umstellen kann?

EDIT: ok, funktioniert mittlerweile. Hab nun ne Property für die Panels. Damit hat er dann anscheinend kein Problem.
 
Zuletzt bearbeitet:

Ähnliche Java Themen


Oben