当前位置:  开发笔记 > 编程语言 > 正文

Java中的KeyListener是抽象的; 无法实例化?

如何解决《Java中的KeyListener是抽象的;无法实例化?》经验,为你挑选了2个好方法。

我试图在java中创建一个Key Listener但是当我尝试时

KeyListener listener = new KeyListener();

Netbeans告诉我KeyListener是抽象的;无法实例化.我知道我错过了这个关键监听器的其他部分,但由于这是我第一次使用关键监听器,我不确定我还需要什么.为什么告诉我这个?

谢谢,

托梅克



1> Jon Skeet..:

KeyListener是一个接口 - 它必须由某些东西实现.所以你可以这样做:

KeyListener listener = new SomeKeyListenerImplementation();

但你不能直接实例化它.您可以使用匿名内部类:

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

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

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

这取决于你想要做什么,基本上.



2> Joey Gibson..:

KeyListener是一个接口,因此您必须编写一个实现它的类来使用它.正如Jon建议的那样,您可以创建一个内联实现它的匿名类,但是有一个名为KeyAdapter的类,它是一个实现KeyListener的抽象类,每个接口方法都有空方法.如果你是KeyAdapter的子类,那么你只需要覆盖你关心的那些方法,而不是每个方法.因此,如果你只关心keyPressed,你可以这样做

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

这可以为您节省一些工作.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有