Javaでキーリスナーを作成しようとしていますが、試してみると
KeyListener listener = new KeyListener();
Netbeans は、KeyListener は抽象的であり、インスタンス化できないと言っています。このキーリスナーの他の部分が欠けていることは知っていますが、キーリスナーを使用するのはこれが初めてなので、他に何が必要なのかわかりません。なぜそれが私にこれを言っているのですか?
ありがとう、
トメク
Javaでキーリスナーを作成しようとしていますが、試してみると
KeyListener listener = new KeyListener();
Netbeans は、KeyListener は抽象的であり、インスタンス化できないと言っています。このキーリスナーの他の部分が欠けていることは知っていますが、キーリスナーを使用するのはこれが初めてなので、他に何が必要なのかわかりません。なぜそれが私にこれを言っているのですか?
ありがとう、
トメク
KeyListener
はインターフェースです。何かによって実装する必要があります。したがって、次のことができます。
KeyListener listener = new SomeKeyListenerImplementation();
ただし、直接インスタンス化することはできません。匿名の内部クラスを使用できます。
KeyListener listener = new KeyListener()
{
public void keyPressed(KeyEvent e) { /* ... */ }
public void keyReleased(KeyEvent e) { /* ... */ }
public void keyTyped(KeyEvent e) { /* ... */ }
};
基本的に何をしたいかによります。
KeyListenerはインターフェースであるため、それを使用するには、KeyListenerを実装するクラスを作成する必要があります。Jonが提案したように、インラインで実装する匿名クラスを作成できますが、KeyListenerを実装する抽象クラスであるKeyAdapterというクラスがあり、各インターフェイスメソッドに空のメソッドがあります。KeyAdapterをサブクラス化する場合は、すべてのメソッドではなく、関心のあるメソッドのみをオーバーライドする必要があります。したがって、keyPressedのみを気にする場合は、これを行うことができます
KeyListener listener = new KeyAdapter()
{
public void keyPressed(KeyEvent e) { /* ... */ }
};
これにより、作業を少し節約できます。
KeyListener はインターフェースです。つまり、それに基づいてクラスを作成し、その機能を実装できます。おそらく、このチュートリアルが役立ちます。