ActionListener für mehrere Klassen

Murtie

Mitglied
Hi, ich probiere jetzt schon seit einiger Zeit den AktionListener korrekt einzusetzten, aber
kriege es nicht hin. ;(
Ich habe eine Klasse für den JFrame und pro JPanel eine eigene Klasse. Diese Panels adde
ich dann in der JFrame Klasse. Wenn nun z.B. ein Butten auf JPanel3 gedrückt wird, dann
soll eine Aktion im JFrame passieren:
z.B.
JPanel3.setVisible(false);
JPanel4.JPanel3.setVisible(true);
//...
Wie schaffe ich es nun, dass der ActionListener meiner JFrame Klasse die Aktionen seiner
"geaddeten" JPanels behandelt?
 
Du musst der Klasse wo du eine Referenz auf das JFrame hast, das Interface ActionListener Implementieren. Diesen ActionListener reist du dann an das Panel auf das der Button ist weiter und addest ihn an den Button.

Macht dir vielleicht erstmal ein Kleines bespiel!
 
[...] Diesen ActionListener reist du dann an das Panel [...]
Wie genau soll ich den ActionListener übergeben?
Das Interface habe ich natürlich schon implementiert gehabt. Ein kleines Beispiel wäre gut.

Danke schonmal

Ps.
Also mein Aufbau ist ungefähr so:
Code:
Class Main implements ActionListener
{
   //Soll den Listener haben, damit auf eine Aktion im JPanel "HIER" reagiert werden kann.
}
Class GUIFrame extends JFrame
{
   // JPanel einbinden
   JPanel3 p3 = new JPanel3();
   this.add(p3);
}
Class JPanel3 extends JPanel
{
   JButton b;
   //Aktion ...
}
 
Zuletzt bearbeitet:
Wie genau soll ich den ActionListener übergeben?
z.B. in dem man den Panelx Klassen eine Methode
Code:
setActionListener(ActionListener)
spendiert. Falls das eine Art Wizzard oder ähnliches werden soll - also nach jedem Buttonklick das nächste Panel angezeigt werden soll, dann schau Dir mal CardLayout an.
 
Oh Man...
Ich wusste nicht, dass man es einfach mit (this) übergeben kann, das war mein Problem.
So klappt es jetzt 🙂
Naja, man lernt eben nicht aus.
Danke euch!
 

Zurück
Oben