# JPanel erst durch Button-Klick sichtbar machen



## BrynFury (28. Nov 2006)

hallo zusammen. bin dabei mir swing beizubringen. mit mehr oder weniger erfolg 
zu meinem problem. hab hier im forum zwar etwas ähnliches gefunden, hat mich aber nicht weiter gebracht.
nun ich habe eine klasse, die eine gui erstellt, mit...

panel.setVisible(false);

über eine anderes frame soll der boolean wert auf "true" gesetzt werden, wenn ein ok-button geklickt wird. wie kann ich das problem am besten realisieren. kann ich das überhaupt aus einer anderen klasse aus ändern?

[/code]


----------



## The_S (28. Nov 2006)

Schreib dir doch in der Klasse, in der dein JPanel liegt eine Methode die z. B. so aussieht:


```
public void setPaneVisible(boolean visible) {
   pane.setVisible(visible);
}
```

Diese Methode rufst du dann von deiner anderen Klasse aus auf


----------



## SlaterB (28. Nov 2006)

alles ist möglich, solange eine Referenz da ist, kann ein Objekt auch angesprochen werden,

hier sollte die Referenz auf das Panel im nächsthöheren Panel oder im Frame vorliegen,

das zweite Frame wird diese Referenz nicht direkt haben,
sollte  aber zumindest das erste Frame kennen und kann dieses fragen


----------



## BrynFury (28. Nov 2006)

die methode


```
public void setPaneVisible(boolean visible) {
   pane.setVisible(visible);
}
```

läuft zwar, aber nur wenn ich den boolean wert innerhalb der klasse ändere und nich von der anderen klasse aus.

hat das vielleicht mit der referenz zu tun`? u wenn ja, wie sollte ich das anstellen?
grrr..ich verzweifel langsam


----------



## The_S (28. Nov 2006)

Naja du brauchst in deiner aufrufende Klasse eine Referenz deiner Panel-Klasse. Von dort aus kannst du dann diese MEthode aufrufen.

Es ist immer nützlich wenn du uns mitteilst WAS nicht geht.


----------



## BrynFury (28. Nov 2006)

ok..jetzt funktionierts...danke dafür...

ist es eigentlich auch möglich das panel in einer klasse zu erstellen und es dann einer anderen klasse zuweisen?


----------



## The_S (28. Nov 2006)

Vermutlich ja, aber sag doch mal genau was du unter "zuweisen" verstehst  .


----------



## BrynFury (28. Nov 2006)

naja...ich erstelle ein panel in einer klasse, wo ich z.b. karten anzeigen möchte. und übergebe(lade) es in einer(aus einer) anderen klasse...soll heißen, dass ich in der einen klasse ein frame habe und das panel aus der anderen klasse auf diesem frame anzeigen möchte.ist es jetzt klarer???
u wie würde das dann funktionieren?


----------



## The_S (28. Nov 2006)

Genauso wie das setPaneVisible nur dass du keinen boolean sondern ein z. B. JPanel übergibst und dieses dann anzeigst.


----------

