# Zwei Frames miteinander verbinden



## sanscheinmicha (7. Okt 2004)

Hallo Leute, ich habe mir mit J Builder zwei Frames bzw. Anwendungen geschrieben.
Die eine soll eine Startseite sein und die andere das Ziel.
Wie kann ich meiner Startseite sagen, hallo öffne beim Klicken des Buttons das neue Ziel?

Arbeite mit JBuilderX

Danke


----------



## Illuvatar (7. Okt 2004)

ActionListener -> Window#setVisible ???


----------



## sanscheinmicha (7. Okt 2004)

Wäre es möglich mir das ein bisschen genauer zu erklären???
Ich muss doch sicher nicht alles in eine Datei schreiben, oder?


----------



## Beni (7. Okt 2004)

Du hast 2 Klassen A und B (die beide von (J)Frame erben).

A ist die Startklasse, dann kannst du z.B. sowas schreiben (das ist eine von vielen Möglichkeiten)


```
public class A extends JFrame{
  private B b;
 
  public A(){
  }

  // das wird von irgendeinem Button aufgerufen
  private void openFrameB(){
    if( b == null )
      b = new B( this );

    b.setDiesesUndJenes( "blupp", false );
    b.setVisible( true );
  }

  public static void main( String[] args ){
    A a = new A();
    a.setVisible( true );
  }

}
```


```
public class B extends JFrame{
  private A a;
  
  public B( A a ){
    this.a = a;
  }
}
```

Sobald du das zweite Frame B öffnen willst, stellst du eine Instanz dieses Frames her, setzt ein paar Einstellungen, und öffnest. Das zweite Frame B weiss übrigbens, von woher es geöffnet wurde, weil du im das A im Konstruktor übergibst. Das B könnte also wiederum dass A verändern...


----------



## L-ectron-X (7. Okt 2004)

Ich fasse mal eben die Worte Illuvatars in einen Satz.
Melde einen ActionListener an Deinem Button an und überschreibe die actionPerformed()-Methode des ActionListeners. Entweder direkt in dieser Methode, oder in einer aus dieser Methode aufgerufenen weiteren Methode kannst Du eine Instanz des "Zielfensters" sichtbar machen und eventuell auch das aufrufende Fenster unsichtbar machen.
Am besten schreibst Du das in die "Quellfenster"-Klasse.

```
this.setVisible(false);
zielFenster.setVisible(true);
```


----------



## Illuvatar (8. Okt 2004)

Wenn jemand zwei Fenster programmiert, gehe ich davon aus, dass er die setVisible Methode kennt, und dass er weiß, was EventListener sind, sonst sind besagte zwei Fenster nämlich nutzlos ???:L


----------

