# Wechseln zwischen Panels



## ThreadBoy (29. Dez 2004)

Hi!
ich schreibe ein applet, indem ich zwischen zwei Panels hin- und herschalten muss. kann mir jemand helfen, wie ich das mittels eines Buttons oder einer Checkbox umschalten kann?
danke!!


----------



## L-ectron-X (29. Dez 2004)

Zeig doch mal, was Du schon an Code hast, dann sehen wir weiter.


----------



## ThreadBoy (29. Dez 2004)

ich hab eine input box und einige checkboxen auf verschiedenen Panels, die ich zu einem großen panel zusammengeführt habe. wenn ich nun auf einen eigenen Button/ eigene Checkbox klicke, soll auf den anderen "Zustand" umgeschalten werden und eines der Panels durch ein neues ersetzt werden


----------



## Illuvatar (29. Dez 2004)

ActionListener/ItemListener hinzufügen - Altes Panel entfernen - Neues Panel hinzufügen - validate() aufrufen(wichtig)


----------



## ThreadBoy (30. Dez 2004)

und ich kann das Panel einfach im ActionListener tauschen? muss ich das validate statt dem add machen oder zusätzlich?


----------



## L-ectron-X (30. Dez 2004)

Beispiel für AWT:

```
remove(altesPanel);
add(neuesPanel);
validate();
```

Beispiel für Swing:

```
getContentPane().remove(altesPanel);
getContentPane().add(neuesPanel);
validate();
```


----------



## ThreadBoy (31. Dez 2004)

Das hat funktioniert! Und wie kann ich das wieder zurücktauschen bzw. das Applet neu starten bzw. aufrufen??


so hab ichs derzeit
Methode ActionPerformed:

```
if(e.getSource()==sendeButton)
{    getContentPane().remove(Panel1);
    getContentPane().add(panel4);
    getContentPane().remove(Panel2);
    getContentPane().add(Panel5);
validate();
....

}
if(e.getSource()==zurueckButton)
{// wie geht zurücktausch??
}
```


----------



## L-ectron-X (31. Dez 2004)

Wenn Du genau hinsiehst, hast Du schon die Lösung. :roll:


----------



## MPW (27. Nov 2005)

Also bei mir funzt da nich:

In meinem Applet habe ich eine gui-alias-Anmeldescript.
Sobald die Anmeldung erfolg wird, remove ich alle Panels und füge das neue hinzu, in der TextArea soll dann das ergebnis der Anmeldung präsentiert werden:


```
removeAll();
				JTextArea ergA = new JTextArea();
				JScrollPane ergAPane = new JScrollPane(ergA);
				JPanel neu = new JPanel(new BorderLayout());
				neu.add(ergAPane, BorderLayout.NORTH);
				JPanel jpb = new JPanel(new FlowLayout(FlowLayout.RIGHT, 5, 5));
				JButton drucken = new JButton("Drucken");
				drucken.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						System.out.println("Drucken pressed");
					}
				});
				jpb.add(drucken);

				neu.add(jpb, BorderLayout.SOUTH);
				add(neu);
				validate();
```

Ausgeführt wird das ganze aus einer Methode, die vom ActionListener aufgerufen wird, sollte also nicht das Problem sein...

Optisch dargestellt sieht man eine nicht mehr funktinoierende GUI, sobald man den AppletViewer mal resized bleibt alles weiß!

Auch repaint, revalidate(), invalidate(), doLayout(), setVisible(false/true), hilft alles nix, hat jemannd eine Idee, was mache ich falsch?

[edit:] is'n JApplet, was aber nix bezüglich dieses Problems ändern sollte...


----------



## L-ectron-X (27. Nov 2005)

Probiere mal

```
validate();
repaint();
```

Gibts eigentlich 'ne Fehlermeldung in der Java-Console?


----------



## MPW (28. Nov 2005)

nein gibt es nicht,

wer sich das mal anschaun möchte:

http://www.tech-no.de.ms

valdiate();
repaint();

geht auch nicht,

soll ich mal den gesammten Code posten?


----------

