Frage zu ActionListener
-
Hallo
Ich habe mir einen eigenen Action Listener geschrieben
class MyActionListener implements ActionListener .....
Wenn ich nun meine Komponenten in der Gui hinzufüge , dann registriert sich jede komponenet beim ActionListener so :
[java]
Component c = new Compoent();
c.addActionListener(new MyActionListener())[java]Ist das ratsam jedes Mal einen neue Instanz vom Action Listsener zu erzeugen oder sollte man über ein Singleton - Variante nachdenke.
Was ist eure Meinung
-
Component c = new Compoent(); c.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { // Your Code here! } });
-
... ist das denn für ne Anwort??? Damit hat man für jede Anwendung ne neue Instanz... wo ist der Vorteil?? Nur weils so "cool" aussieht???
Zum Threatsteller:
Das kommt darauf an, hast du einen ActionListener für jede Action oder einen "Dispatcher"? Brauchst du einen bestimmten Zustand den du managen willst oder nicht?
Der Vorteil des vom Posters "vorgstellten" Codefragment ist, dass hier nicht für jede Action-Klasse eine eigene Klasse angelegt werden muss. Dies sehe ich von Vorteil wenn man die Actionaufrufe nur an einen Dispatcher weiter delegiert oder die Actions wirklich nur kleine Aufgaben erfüllen...
-
Fischkopf2009 schrieb:
Ist das ratsam jedes Mal einen neue Instanz vom Action Listsener zu erzeugen oder sollte man über ein Singleton - Variante nachdenke.
Was ist eure Meinung
Singleton ganz sicher nicht. Wenn überhaupt, dann erzeuge eine neues MyActionListener-Objekt und übergebe das an die diversen addActionListener()-Methoden.
Grundsätzlich rate ich dir (so wie Zeus) zu anonymen Klassen, da du hier die Aktion für jedes Event trennst und nicht eine riesige actionPerformed()-Methode zur Abhandlung n verschiedener Events hast.