Java中的KeyListener是抽象的;无法实例化?
-
08-07-2019 - |
题
我正在尝试在java中创建一个Key Listener但是当我尝试
时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是一个接口,因此您必须编写一个实现它的类来使用它。正如Jon建议的那样,您可以创建一个内联实现它的匿名类,但是有一个名为KeyAdapter的类,它是一个实现KeyListener的抽象类,每个接口方法都有空方法。如果你是KeyAdapter的子类,那么你只需要覆盖你关心的那些方法,而不是每个方法。因此,如果你只关心keyPressed,你可以这样做
KeyListener listener = new KeyAdapter()
{
public void keyPressed(KeyEvent e) { /* ... */ }
};
这可以为您节省一些工作。
KeyListener是一个接口,这意味着您可以基于它编写类并实现其功能。也许这个教程有帮助。
不隶属于 StackOverflow