java - Swing 是否持续扫描键盘输入(java)?

标签 java swing input keyboard

我正在尝试使用 g.drawImage() 将绘制到 Jpanel 上的图像移动。我需要知道为什么这段代码不起作用(我正在尝试使用 w 键将其向上移动来重新定位图像)

int CharX = 1;
int CharY = 30;

public void keyPressed(KeyEvent w) {
    CharY = CharY + 1;
    repaint();
}
public void keyReleased(KeyEvent w) {
    CharY = CharY + 1;
    repaint();
}

最佳答案

  1. 您实际上并没有通过将 KeyEvent w 命名来检查 w 键。您需要检查 if (w.getKeyCode() == KeyEvent.VK_W)
  2. Java 中的 Y 坐标从顶部的 0 开始,因此您可能需要从 CharY 中减去以使其向上。
  3. 这将更新两次,一次是在按下该键时,另一次是在您松开该键时。不确定这是否是您真正想要的。
  4. 在不知道 paint 函数内部内容的情况下,或者甚至实现它时,很难说问题是否实际上不在那里,但它应该看起来像

    公共(public)无效油漆(图形g){ g.drawImage(yourImage, CharX, CharY, null); }

关于java - Swing 是否持续扫描键盘输入(java)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16861302/

相关文章:

java - JMenu Action 监听器

java - 从 Java Swing GUI 文本区域运行 ANTLR 语法

javascript - 如何在 android/三星手机的 html 文本输入字段中停止自动大写?

javascript - 长内容可编辑的 div 被鼠标水平滚动屏蔽为输入

java - 如何从 Derby 数据库获取过去 30 秒内插入的条目?

Java - 从多个多维数组创建 JSON 对象

java - 我需要在 Jtree 中添加 "right click popup "选项

c++ - 输入不在 C++ 中的 scanf 中终止

java - Mac 中的子框架运动

java - 为什么我们不需要在 Spring Boot 应用程序中实现 CrudRepository 方法?