Tworzenie klasy adapterowej dla własnych zdarzeń dziedziczących po AWTEvent
W projekcie przedstawiliśmy klasę listenera, która ma dwie metody. W obiekcie Smok
dodając listener musieliśmy zaimplementować obie jego metody. Mogłoby oczywiście być ich więcej. Dlatego zastosujemy klasę adapterową SmokAdapter
:
Klasa SmokAdapter
package events2; public abstract class SmokAdapter implements SmokListener { //umozliwia uzycie wybranej metody/metod z metod SmokListener //implementacja podana jest w klasie Main @Override public void smokObudzilSie(SmokEvent event) { } @Override public void smokZasnal(SmokEvent event) { } }
Jak widzimy jest to klasa abstrakcyjna implementująca listener SmokListener
i implementująca obie metody listenera, które nic nie robią, bo są puste.
Teraz klasa Main
wygląda następująco:
Klasa Main
package events2; class Main { //implementacja wybranej metody listenera public static void main(String[] args) { Smok smok = new Smok(); smok.addSmokListener(new SmokAdapter() { @Override public void smokObudzilSie(SmokEvent event) { System.out.println("Smok obudził się"); } }); smok.obudzSmoka(); } }
Zamiast SmokListener
wstawiamy SmokAdapter
i możemy zaimplementować tylko jedną potrzebną metodę interfejsu.
Pozostałe klasy są identyczne jak w poprzednim wpisie.
Po uruchomieniu klasy Main
otrzymujemy:
Smok obudził się