我写了这个简短的类,应该添加一个“玩家”的对象
类,其中包含已实现的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()
{
}
}
最佳答案
您的Titlescreen没有addKeyListener(...)
方法,并且不扩展任何具有该方法的类,因此编译器正确地抱怨您正在调用该类不存在的方法。
您有几种选择:
给Titlescreen一个addKeyListener(...)
方法,但是您必须弄清楚方法主体应该具有什么,即,您将把KeyListener添加到方法主体内部的内容是什么。
让Titlescreen扩展一个Swing组件,例如JPanel,它具有自己的addKeyListener(...)
方法。我猜这是您想要执行的操作,但是忘记了执行此操作,但是鉴于您到目前为止已发布的信息,我不确定。请注意,如果您这样做了,则当希望KeyListener起作用时,您需要确保被侦听的组件是1)可聚焦的,并且2)具有应用程序的焦点。
只需摆脱您的this.addKeyListener(...)
方法调用即可。最重要的是您甚至拨打此电话的原因,也许可以做得更好。