Frage

Ich versuche jedoch einen Schlüssel Listener in Java zu erstellen, wenn ich versuche,

KeyListener listener = new KeyListener();

Netbeans ist mir zu sagen, dass KeyListener abstrakt ist, kann nicht instanziert werden. Ich weiß, dass ich ein anderes Stück dieser Schlüssel Zuhörer bin fehlt, aber da dies mein erstes Mal ist ein Schlüssel-Listener ich bin nicht sicher, was ich sonst noch brauchen. Warum ist es mir dies zu sagen?

Danke,

Tomek

War es hilfreich?

Lösung

KeyListener ist eine Schnittstelle - es muss durch etwas umgesetzt werden. So könnten Sie tun:

KeyListener listener = new SomeKeyListenerImplementation();

Sie können sie jedoch nicht direkt instanziiert werden. Sie könnte eine anonyme innere Klasse verwenden:

KeyListener listener = new KeyListener()
{
    public void keyPressed(KeyEvent e) { /* ... */ }

    public void keyReleased(KeyEvent e) { /* ... */ }

    public void keyTyped(KeyEvent e) { /* ... */ }
};

Es hängt davon ab, was Sie tun wollen, im Grunde.

Andere Tipps

KeyListener ist eine Schnittstelle, so dass Sie eine Klasse schreiben muss, die es implementiert, es zu benutzen. Als Jon vorgeschlagen, könnten Sie eine anonyme Klasse zu erstellen, die es inline implementiert, aber es gibt eine Klasse namens KeyAdapter, die eine abstrakte Klasse ist KeyListener Umsetzung mit leeren Methoden für jede Interface-Methode. Wenn Sie KeyAdapter Unterklasse, dann müssen Sie nur die Methoden zu überschreiben, die Ihnen wichtig sind, nicht jede Methode. Wenn Sie also nur über keyPressed gepflegt, könnten Sie dies tun

KeyListener listener = new KeyAdapter()
{
    public void keyPressed(KeyEvent e) { /* ... */ }
};

Dies könnte Ihnen ein wenig Arbeit speichern.

KeyListener ist eine Schnittstelle, das bedeutet, dass Sie eine Klasse schreiben können darauf basierende und seine Funktionen implementieren. Vielleicht ist dieses Tutorial hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top