Witam, dotychczas używałem Action Listenera w sposób podany w dokumentacji:
![Zrzut ekranu 2016-04-21 o 21.56.26.png](//static.4programmers.net/uploads/attachment/Zrzut ekranu 2016-04-21 o 21.56.26.png)
Jednak w jednym z tutoriali natknąłem się na coś takiego:
![Zrzut ekranu 2016-04-21 o 21.59.41.png](//static.4programmers.net/uploads/attachment/Zrzut ekranu 2016-04-21 o 21.59.41.png)
Czy jest ktoś w stanie mi w miarę prosty sposób wyjaśnić drugą metodę, czy to jest to samo co w pierwszej, tylko użyte w inny sposób?
w userText.addActionListener( po nawiasie nie ma nic ?:)
Sorry, za bardzo obciąłem![Zrzut ekranu 2016-04-21 o 23.15.08.png](//static.4programmers.net/uploads/attachment/Zrzut ekranu 2016-04-21 o 23.15.08.png)
Oczywiście chodzi mi o samą konstrukcję, bo za wiele to na razie nie robi.
Jest to tak zwana klasa anonimowa, poczytaj o tym
Dobra, przeczytałem o tym, czyli najoptymalniejszym wyjściem jest użycie klasy anonimowej, gdy jako parametr występuje instancja klasy, w przeciwnym wypadku skłaniamy się raczej ku opcji z dokumentacji, której zrzut wrzuciłem jako pierwszy?
Co rozumiesz przez slowo najoptymalniejszy? ;)
Ogolnie w tym wypadku trzeba zaimplementowac tylko jedna metode dlatego dosc latwo zrobic klase anonimowa ktora to implementuje.
Osobiscie:
- jesli ten action listener wykorzystywany bylby w wielu miejsach - wydzielenie osobnej klasy
- jesli bedzie wykorzystany tylko w jednym - anonymous class lub klasa prywatna, przy czym sklanialbym sie do klasy prywatnej zeby nie zaciemniac kodu.