对于类型,未定义addKeyListener()

时间:2014-11-26 16:06:00

标签: java eclipse keylistener

我写过这个短片课,应该添加"播放器"  class,包含已实现的KeyListener,但似乎缺少addKeyListener();方法

import java.awt.*;

import javax.swing.*;

public class Titlescreen {

    private Player player;

    public void init()
    {
        player = new Player();
        this.addKeyListener(player);
    }


    public void tick()
    {
        player.tick();
    }

    public void paint()
    {

    }

}

1 个答案:

答案 0 :(得分:2)

你的Titlescreen没有addKeyListener(...)方法,并且没有扩展任何具有此方法的类,因此编译器正在抱怨你正在调用一个不存在的方法这堂课。

您有几种选择:

  • 给Titlescreen一个addKeyListener(...)方法,但是你必须弄清楚方法体应该有什么,也就是说,你将把KeyListener添加到方法体内部。
  • 让Titlescreen扩展Swing组件,例如JPanel,它具有自己的addKeyListener(...)方法。我猜这是你想要做的,但忘记这样做,但我不确定,鉴于你到目前为止发布的信息。请注意,如果您这样做,则需要确保收听的组件是1)可聚焦的,2)当您希望KeyListener运行时,该应用程序具有焦点。
  • 只需摆脱this.addKeyListener(...)方法调用即可。最重要的是你甚至打电话的原因,也许可以做得更好。