Domanda

Sto provando a creare un Key Listener in Java, comunque quando provo

KeyListener listener = new KeyListener();

Netbeans mi sta dicendo che KeyListener è astratto, non può essere istanziato. So che mi manca qualche altro pezzo di questo listener di chiavi, ma dato che questa è la prima volta che utilizzo un listener di chiavi non sono sicuro di cos'altro ho bisogno. Perché mi sta dicendo questo?

Grazie,

Tomek

È stato utile?

Soluzione

KeyListener è un'interfaccia - deve essere implementata da qualcosa. Quindi potresti fare:

KeyListener listener = new SomeKeyListenerImplementation();

ma non puoi istanziarlo direttamente. potresti utilizzare una classe interna anonima:

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

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

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

Dipende da cosa vuoi fare, in sostanza.

Altri suggerimenti

KeyListener è un'interfaccia, quindi è necessario scrivere una classe che la implementa per usarla. Come ha suggerito Jon, potresti creare una classe anonima che la implementa in linea, ma esiste una classe chiamata KeyAdapter che è una classe astratta che implementa KeyListener, con metodi vuoti per ciascun metodo di interfaccia. Se esegui la sottoclasse di KeyAdapter, devi solo sovrascrivere i metodi che ti interessano, non tutti i metodi. Pertanto, se ti importasse solo di KeyPress, potresti farlo

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

Questo potrebbe farti risparmiare un po 'di lavoro.

KeyListener è un'interfaccia, il che significa che puoi scrivere una classe basata su di essa e implementare le sue funzioni. Forse questo tutorial aiuta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top