Hi,
Ich habe ein JFrame auf dem ich ein JPanel anzeige, welches wiederum recht komlex aus vielen weiteren Panels und Elementen besteht. Deshalb habe ich daraus eine eigene Klasse myPanel extends JPanel gemacht. In meiner Main erzeuge ich jetzt einen JFrame und add dieses Panel. Wenn jetzt auf diesem Panel ein bestimmter Button angeklickt werden soll, dann soll das Panel verschwinden (remove) und ein anderes Panel erscheinen (add). Dieses wäre ja nun Aufgabe der Main Klasse und nicht des Panels selber. Das Panel muss also dem Main irgendwie Bescheid sagen, was es zu tun hat.
Ideen wie man das lösen könnte hätte ich schon
1) Eigene Events generieren und dem Main einen Listerener verpassen der auf die Evenes des Panels hört. Klingt für mich am saubersten ist aber für ein einziges Event doch recht oversized oder nicht?
2) Beim Erstellen des Panels, diesem das Main-Object mitgeben und dort eine Public-Methode aufrufen
3) Beim Erstellen des Panels, diesem das Main-Object mitgeben und als Actionlistener des Button direkt das Main setzen.
2 und 3 finde ich aber recht unelegant.
Gibt es noch was schöneres oder wie löst man das allgemein in Java?
Gruß
Claus
Ich habe ein JFrame auf dem ich ein JPanel anzeige, welches wiederum recht komlex aus vielen weiteren Panels und Elementen besteht. Deshalb habe ich daraus eine eigene Klasse myPanel extends JPanel gemacht. In meiner Main erzeuge ich jetzt einen JFrame und add dieses Panel. Wenn jetzt auf diesem Panel ein bestimmter Button angeklickt werden soll, dann soll das Panel verschwinden (remove) und ein anderes Panel erscheinen (add). Dieses wäre ja nun Aufgabe der Main Klasse und nicht des Panels selber. Das Panel muss also dem Main irgendwie Bescheid sagen, was es zu tun hat.
Ideen wie man das lösen könnte hätte ich schon
1) Eigene Events generieren und dem Main einen Listerener verpassen der auf die Evenes des Panels hört. Klingt für mich am saubersten ist aber für ein einziges Event doch recht oversized oder nicht?
2) Beim Erstellen des Panels, diesem das Main-Object mitgeben und dort eine Public-Methode aufrufen
3) Beim Erstellen des Panels, diesem das Main-Object mitgeben und als Actionlistener des Button direkt das Main setzen.
2 und 3 finde ich aber recht unelegant.
Gibt es noch was schöneres oder wie löst man das allgemein in Java?
Gruß
Claus