Java Aktuelles Panel herausfinden

PEASANT KING

Commander
Registriert
Okt. 2008
Beiträge
2.412
Hallo Leute,

ich habe noch nicht ganz verstanden wie ich in einer GUI Anwendung das aktuelle JPanel heraus bekomme das angezeigt wird.
Meine Absicht ist es das Panel rauszubekommen und dann löschen zu lassen wenn ich ein neues Panel aufrufe in der Applikation.
 
Hi,

definiere mal "aktuelles JPanel"... was verstehst du unter "aktuell"?

VG,
Mad
 
Okay ich starte die App und das aktuelle Panel im JFrame ist mainPanel wenn ich nun auf den Button Kunde z.B. klicke lasse ich das mainPanel removen und adde zum JFrame das Panel kundePanel.
Nun ist ja das aktuelle Panel kundePanel, jetzt habe ich noch einen 2ten Button Lieferanten wenn ich den klicke muss ich ja das kundepanel entfernen und das lieferPanel adden.
Nun möcht ich aber nicht in die Funktion reinschreiben remove(kundePanel); sondern remove("aktuelles Panel"); wie mache ich das.
 
und adde zum JFrame das Panel kundePanel.
Entweder merkst du dir einfach das zuletzt hinzugefügte Panel, oder du bringst es halt anders in Erfahrung... schließlich lassen sich ja alle Kinder eines Containers abfragen...

Sinnvoll ist hier sowieso eine Methode zu haben, die das aktuelle Panel setzt...

Code:
class ... {
  ...
  private JPanel activePanel;
  ...

  public void setActivePanel(JPanel panel)
  {
    if (activePanel != null) {
      remove(activePanel);
    }
    activePanel = panel;
    if (activePanel != null) {
      add(activePanel);
    }
    revalidate();
    repaint();
  }

  ...
}
 
Zuletzt bearbeitet:
@Fonce: Ich werde ehrlich gesagt nicht schlau aus dem, was du verlinkt hast...

Edit: Ah ok jetzt weiß ich was du meinst...
 
Zuletzt bearbeitet:
Ich habs anders gelöst
PHP:
        JPanel kundePanel = new DBAppKundeView();
        JFrame mainFrame = DBApp.getApplication().getMainFrame();
        mainFrame.setContentPane(kundePanel); 
        mainFrame.validate();
 
Das ist so ziemlich genau das, was 1668mib schon gespostet hat. Nur er hat noch eine Methode daraus gemacht.
 
1668mib schrieb:
@Fonce: Ich werde ehrlich gesagt nicht schlau aus dem, was du verlinkt hast...

Edit: Ah ok jetzt weiß ich was du meinst...

Beispiel hierzu im Anhang...
 

Anhänge

Zurück
Oben