Tabelle Aktualisieren

nippo

Grünschnabel
Hallo,

ich habe zwei Java Klassen die beide von JFrame abgeleitet sind. Über die 1. Klasse rufe ich die 2. auf. Beim schließen der Zweiten soll etwas in dem Fenster der 1. aktualisiert werden.

Zur Zeit versuche ich das über:

1.Klasse KL = new 1.Klasse()
KL.Aktualisierungsfunktion()

Das Problem ist wenn ich eine neue Instanz von 1.Klasse bilde wird gleichzeitig ein neues Fenster erzeugt und über das alte gelegt. Wie schaffe ich es in der alten Instanz die Aktualiserung Funktion aufzurufen ?

Gruß nippo
 
Also wenn dein Objekt der 2.Klasse ein Member von Klasse 1 ist, wieso sagst du dann nicht einfach beim Schliessen deines Klasse 2 Windows:

Code:
klasse2_member_von_klasse1.close();
this.aktualisierungsFunktion();
?

Gruß

RedWing
 
Tach,
da gibt es viele Möglichkeiten. Hier drei davon:

1. Stichwort singleton Objekt. Erzeugung des ersten Frames als Singleton.
2. Du übergibst dem Konstruktor des zweiten Frames eine Referenz des ersten Frames. Dann kannst Du ohne Erzeugung neuer Frames das erste Frame veranlassen, bestimmte funktionen aufzurufen.
3. Du benutzt das erste Frame als Listener, also dass sich das erste Frame beim Erzeugen des zweiten Frames gleich dort als Listener anmeldet.

Die dritte Möglichkeit ist flexibel für Erweiterungen. Also wenn irgendwann einmal ein drittes Frame hinzukommen sollte mit Auswirkungen auf das erste Frame, braucht sich das erste Frame lediglich auch dort als Listener anmelden, fertig.
 
Hi Snape,

könntest du mir für deinen zweiten Vorschlag noch mal ein Code Beispiel geben?
Ich habe das versucht umzusetzen, klappt aber irgendwie nicht.

Gruß nippo
 
So:
Code:
public class Frame1
{
  void yourMethod()
  {
    Frame2 frame2 = new Frame2(this);
    // TODO was sonst noch passieren soll..
  }
  public void aktualisiere()
  {
    // TODO Auto-generated method stub
  }
}
public class Frame2
{
  private Frame1 frame1Reference;

  public Frame2(Frame1 frame1)
  {
    frame1Reference = frame1;
    // TODO was sonst noch passieren soll..
  }
  void nochEineMethode()
  {
    if ( frame1Reference != null )
      frame1Reference.aktualisiere();
  }
}
 
Zurück