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ę

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *