Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich programmiere gerade ein kleines Applet und benutze mehrere Buttons.
Ich möchte gerne nach Klick des Buttons dem Applet ein anderes Panel hinzufügen und das bisherige entfernen.
Komme damit aber nicht wirklich weiter.
Ich habe bisher ein Applet, dem ich ein Panel (panel1) hinzufüge, welches die Buttons mit dazugehörigen listenern beinhaltet.
Dann habe ich ein zweites Panel (panel2) und möchte bei aufruf des listeners dem applet panel1 durch panel2 ersetzen.
Ich habe also zuerst eine Klasse geschrieben, die nur das Applet initialisiert und dann Panel1 (auch in eigener Klasse abgeleitet von JPanel) hinzufügt.
Genau das gleiche habe ich auch für Panel2 gemacht (auch mit eigener Klasse, damit beide unabhängig voneinander funktionieren)
Aber ich kriege im listener jetzt nicht das erste panel removed und das 2 dafür hinzugefügt..
Also ich habe es bisher folgendermaßen gelöst und somit auch gerade das gewünscht resultat hinbekommen.
Java:
public void actionPerformed(ActionEvent e) {
Panel1.this.removeAll();
Panel2 panel = new Panel2();
Panel1.this.add(panel);
Panel1.this.validate();
}
});
}
Meine Frage ist jetzt nur, ob das eine wirklich elegante Lösung ist, da ich ja so immer meinem vorhanden Panel ein weiteres hinzufüge. Wobei ich ja eigentlich nur meinem Applet ein anderes Panel hinzufügen wollte.
Das Problem ist, dass ich mit dieser vorgehensweise auch noch weiter in die Tiefe gehen möchte(weitere buttons in Panel2 --> neues Panel erzeugen) und ja somit immer weiter meine Panels ineinander verschachtel.
auf den Container vom JApplet zugreifen. Dann kannst du es genau so löschen und hinzufügen. Wenn du löschen und hinzufügen willst, dann macht die Lösung schon Sinn. In wie fern es zu deinem Aufbau passt, hängt ja natürlich von deinem Aufbau.