Wechseln zwischen Panels

Status
Nicht offen für weitere Antworten.
T

ThreadBoy

Gast
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!!
 
T

ThreadBoy

Gast
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

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

ThreadBoy

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

L-ectron-X

Gesperrter Benutzer
Beispiel für AWT:
Code:
remove(altesPanel);
add(neuesPanel);
validate();

Beispiel für Swing:
Code:
getContentPane().remove(altesPanel);
getContentPane().add(neuesPanel);
validate();
 
T

ThreadBoy

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


so hab ichs derzeit
Methode ActionPerformed:
Code:
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??
}
 

MPW

Top Contributor
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:

Code:
				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

Gesperrter Benutzer
Probiere mal
Code:
validate();
repaint();

Gibts eigentlich 'ne Fehlermeldung in der Java-Console?
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben