Zielony Smok - logo witryny

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ę