JPanel in Jframe Laden

mckruep

Mitglied
Hey Leute,

hab da eine kleine Gehirnblockade.
Also ich hab einen Frame erstellt mit 3 Panels( links, main , rechts)
Dann hab ich 2 neue Panels erstellt pnl_links, pnl_rechts, welche zur gegebenen Zeit in den Frame geladen werden. Nun hab ich im pnl_Links Buttons, die wenn man drauf klickt in weitere panels in main laden sollen. Da liegt das Problem.

Dachte ich könnte eine setter Methode (setmain(Panel xy) { main = xy } mit dazugehörigen repaint Methoden machen. Das funktioniert allerdings nicht. Das Problem liegt glaub ich daran das ich ja nur mit JFrame x = new Jframe() ; und dann x.setmain(testpanel) an die Funktion komme. Dadurch wird aber ja ne neue Instance erzeugt und somit tut sich rein gar nichts.

Hat jemand einen Tipp Bzw. eine Lösung?
Danke schonmal
 
Hallo,

du könntest doch anstelle deines Main-Panels ein JDesktopPane nehmen. Dieser ist genau dafür ausgelegt, dass du weitere Frames mit Panels in diesem anzeigen lassen kannst ;)
 
Hey,

danke für die Antwort. Werd ich heute Abend mal testen. Aber so wie es bei mir gedacht war mit main.add(testpanel) gehts nicht ?

Ist das überhaupt üblich so zu machen? Also ein Panel irgendwo rein laden wenn sich die Benutzeroberfläche in der Mitte ändert?

Gruß
 
Moin,

nur um die Problemstellung mal klarer zu verstehen:
Versuchst Du Panels in Deinem MainFrame "auszutauschen", also mit neuen zu ersetzen?

Wenn das der Fall ist, dann kannst Du auch das CardLayout verwenden.
Das lässt Dich nämlich zwischen einzelnen Komponenten hin- und herswitchen.

Gruß,
Xan
 
Korrigiere mich, wenn ich falsch liege, aber du meinst sicher Komponenten zu Laufzeit hinzufügen und entfernen, oder?
Kommt würde ich sage auf den Verwendungszweck an :p
 
Hey,

ja die Panels werden im Prinzip ausgetauscht. Ich mach immer ein removeall und dann wieder ein .add
Ist Übersicht halber einfacher zu handlen als mit nem Cardlayout (zumindest soweit ich das bisher verstanden habe) Ist das erste große Projekt was ich jetzt mache. War auch vorher kein Problem weil dann die Buttons über die das gesteuert wurden in dem Mainframe waren ;) Aber über setter methode kam ich leider nicht dran.

edit: Ja Matze passiert alles zur Laufzeit
 
Zuletzt bearbeitet:
sorry wg doppelpost ...

hab mal eine Version zusammengeklickt die das Problem zeigt. Vielleicht wirds dann verständlicher. Ist ne ganz simple Oberfläche die nur das Problem zeigen sollte.
 

Anhänge

  • tutorials_bsp.zip
    68,9 KB · Aufrufe: 74
Zurück