Java:KeyLIstener 和 paintComponent 不合作



我一直在尝试制作一个在屏幕上显示圆圈的java程序。我有三节课:

  1. 首先--->初始化帧并从输入中添加密钥侦听器。

  2. 面板--->包含paintComponent方法和将在屏幕上移动对象的方法(我什至记得放repaint();

  3. 输入--->实现按键侦听器并在面板中调用动画方法

在输入类中,我有以下if语句:

if (e.getKeyCode() == KeyEvent.VK_D) {
  new panel().animation();
}

下面是面板类内部的动画方法:

public void animation() {
  playerX += 10;
  System.out.println(playerX);
  repaint();
}

当我运行程序时,我知道动画方法正在运行,因为它将 playerX 输出到控制台(它像预期的那样增加了时间),但 repaint(); 命令被忽略了!我做错了什么?

您的KeyListener每次收到VK_D事件时都会创建一个新panel,并在此基础上调用animation()。 这不太可能是你想要的。 它可能应该始终在同一个panel对象上调用animation()该对象panel应用程序 UI 中的可见组件。

相关内容

  • 没有找到相关文章

最新更新