Java 无法使图片移动

Java 无法使图片移动,java,acm-java-libraries,Java,Acm Java Libraries,我试着让我的UFO(预先编写的类,包含GCombound绘图)在一个按键上移动。但我不知道为什么它不动。有什么建议吗? 编辑:我所说的“点击一个键”是指一点击一个键就开始移动。不知道我在那里用的是不是正确的英语 import acm.program.*; import java.awt.event.*; public class drawUFO extends GraphicsProgram { private static final double UFO_WIDTH = 50; p

我试着让我的UFO(预先编写的类,包含GCombound绘图)在一个按键上移动。但我不知道为什么它不动。有什么建议吗? 编辑:我所说的“点击一个键”是指一点击一个键就开始移动。不知道我在那里用的是不是正确的英语

import acm.program.*;
import java.awt.event.*;

public class drawUFO extends GraphicsProgram {
  private static final double UFO_WIDTH = 50;
  private static final double UFO_HEIGHT = 25;

  public void run() {
    setup();
    addKeyListeners();

  }

  public void setup() {
    UFO bowl = new UFO(UFO_WIDTH, UFO_HEIGHT);
    add(bowl, 0, 0);
  }

  public void drift(KeyEvent e) {
    while (getWidth() > bowl.getX() + UFO_WIDTH) {
        bowl.move(5, 0);
        pause(50);
    }
  }

  private UFO bowl;
}

所以,这里最大的错误是“移动”方法的名称错误。 我把它设为“漂移”。但是,对鼠标单击作出反应的方法有一个特殊名称,它是mousClicked()。 而且,即使那个部分已经修复,我仍然会有“空指针异常”错误。这将发生在网上:

UFO bowl = new UFO(UFO_WIDTH, UFO_HEIGHT);
这会因为阴影而发生。有关此错误的更多详细信息,您可以在我最近询问的中找到


希望这将对将来的人有所帮助。

您的程序中有一些部分没有向我们展示吗?@user3349993:是否需要使用
AWT
?如果您可以使用
Swing
KeyListeners
肯定会受到焦点相关问题的影响。@nIcEcOw,我不确定你在说什么。我正在youtube上学习CS106A课程,它使用了awt。但我会用谷歌搜索你的suggestion@DavidWallace,只有一个单独的类称为“UFO”。除此之外,我已经显示了所有的代码
setup()
应该设置私有字段
UFO bowl
而不是本地
UFO
,或者
GraphicsProgram.add
方法做什么?