Hallo,
ich spiele gerade mit dem CardLayout rum und habe mir mehrere JPanels mit Buttons gebaut.
Die Buttons heißen "Hilfe","Start" und "Beenden"
Auf Panel 1 sind sie alle 3 drauf, auf Panel 2 nur noch "Start" und "Beenden". Statt dem "Hilfe"-Button ist ein Image-Icon platziert.
Dann gibt es noch eine inner Klasse
die die Funktionalität steuert.
Interessehalber habe ich dann versucht, die einzelnen Karten (JPanels) aus meiner Klasse CardLayoutTest mal in eigene Klassen zu legen und diese dann über
zu erzeugen.
Funzt auch alles, allerdings weiss ich nicht so recht wohin mit der inneren Klasse MyActionListner.
Will die ActionPerformed-Methode eigentlich nicht in Testpanel1 und nochmals in Testpanel2 legen, weil beide Panels ja einen "Start"-Button haben, der seine Funktion nicht verändert.
Kann man es in Java irgendwie hinbekommen, dass man, wenn man auf mehreren Panels ButtonInstanzen von einem Objekt hat, die das gleiche machen sollen, die Definition der Methode
in eine Art Controller-Klasse legt und daher nur einmal definieren muss?
Hab das so probiert - der Compiler motzt auch nicht, aber ich bekomme einen Laufzeitfehler (StackOverflow).
Laufzeitehler bekomm ich auf folgenden Code:
MyActionListener soll meine "Controller-Klasse" sein.
Sie definiert, wie sich das Cardlayout über Buttondruck ändern soll.
Mein Problem gehört zur Thematik "da möchte man als Anfänger mal nicht nur einfach alles in eine Klasse stopfen sondern modularer denken, und schon geht nix mehr" ... in einer einzigen Klasse implementiert lief der Code einwandfrei...
Kann mir jemand sagen, ob man in JAVA sowas mir ausgelagerten ActionListener-Contoller-Klassen überhaupt macht / machen darf / machen kann??
ich spiele gerade mit dem CardLayout rum und habe mir mehrere JPanels mit Buttons gebaut.
Die Buttons heißen "Hilfe","Start" und "Beenden"
Auf Panel 1 sind sie alle 3 drauf, auf Panel 2 nur noch "Start" und "Beenden". Statt dem "Hilfe"-Button ist ein Image-Icon platziert.
Dann gibt es noch eine inner Klasse
Code:
MyActionListener implements ActionListener{
...
}
die die Funktionalität steuert.
Interessehalber habe ich dann versucht, die einzelnen Karten (JPanels) aus meiner Klasse CardLayoutTest mal in eigene Klassen zu legen und diese dann über
Code:
...
testpanel 1 = new Testpanel1();
testpanel 2 = new Testpanel2();
...
Funzt auch alles, allerdings weiss ich nicht so recht wohin mit der inneren Klasse MyActionListner.
Will die ActionPerformed-Methode eigentlich nicht in Testpanel1 und nochmals in Testpanel2 legen, weil beide Panels ja einen "Start"-Button haben, der seine Funktion nicht verändert.
Kann man es in Java irgendwie hinbekommen, dass man, wenn man auf mehreren Panels ButtonInstanzen von einem Objekt hat, die das gleiche machen sollen, die Definition der Methode
Code:
public void actionPerformed(){
...
}
in eine Art Controller-Klasse legt und daher nur einmal definieren muss?
Hab das so probiert - der Compiler motzt auch nicht, aber ich bekomme einen Laufzeitfehler (StackOverflow).
Laufzeitehler bekomm ich auf folgenden Code:
Code:
JButton buttonx = new JButton("Start");
buttonx.addActionListener(new MyActionListener());
MyActionListener soll meine "Controller-Klasse" sein.
Sie definiert, wie sich das Cardlayout über Buttondruck ändern soll.
Mein Problem gehört zur Thematik "da möchte man als Anfänger mal nicht nur einfach alles in eine Klasse stopfen sondern modularer denken, und schon geht nix mehr" ... in einer einzigen Klasse implementiert lief der Code einwandfrei...
Kann mir jemand sagen, ob man in JAVA sowas mir ausgelagerten ActionListener-Contoller-Klassen überhaupt macht / machen darf / machen kann??