dh-Materialien
Java Tutorial
 

Interfaces

java.awt.event.ActionListener   java.lang.Runnable   javax.swing.event.DocumentListener

Jede Klasse kann nur eine einzige Superklasse haben, aber durchaus mehrere Interfaces implementieren:

Example extends SuperExample implements Interface1, Interface2, ...

Ein Interface beinhaltet ausschließlich nur mit default deklarierte vordefinierte Methoden oder abstrakte Methoden, welche allerdings nicht (wie bei Klassen) explizit mit dem Schlüsselwort abstract deklariert werden müssen. Soll eine Klasse Example instanziierbar sein und wird ihr ein Interface mittels implements hinzugefügt, ist es notwendig, in Example alle durch dieses Interface vorgegebenen abstrakten Methoden zu implementieren. Die im Interface vordefinierten Methoden dürfen überschrieben werden.

Nachfolgend werden einige derjenigen Interfaces kurz beschrieben, die in diesem Tutorial verwendet werden:

java.awt.event.ActionListener

Das Interface ActionListener ermöglicht festzulegen, dass bestimmte Ereignisse wie beispielsweise Mausklicks auf einen Button oder das Drücken einer Taste (action events) registriert werden sollen und zu definieren, was beim Auftreten solcher Ereignisse passieren soll (event handling).

Wird einer Klasse das Interface ActionListener hinzugefügt, so muss die Methode actionPerformed implementiert werden (siehe auch: Ereignistyp ActionEvent).

java.lang.Runnable

Wenn die Instanzen einer Klasse einen oder auch mehrere Threads starten sollen, kann dies durch die Implementierung des Interface Runnable realisiert werden. Ein Beispiel:

class Frame extends JFrame implements Runnable {
    ...
    Thread animation;

    public void
runAnimation() {
        animation = new Thread(this);
        animation.start();
    }
    ...
   
    @Override
    public void run() {
        ...
    }
}

Wird einer Klasse das Interface Runnable hinzugefügt, so muss die parameterfreie Methode run implementiert werden.

Nach Aufruf der zu einer Instanz der Klasse Thread gehörenden Methode start wird der Anweisungsblock der Methode run  abgearbeitet ( Javaprojekt LayoutPerformer).

javax.swing.event.DocumentListener

Sollen gewisse Dinge ausgelöst werden, nachdem eine Änderung an einem Text (z.B. am Inhalt eines Textfeldes vom Typ JTextArea) vorgenommen worden ist, dann benötigt man das Interface DocumentListener.

Wird einer Klasse das Interface DocumentListener hinzugefügt, so müssen die Methoden changedUpdate, insertUpdate, removeUpdate implementiert werden (siehe auch: Ereignistyp DocumentEvent).