我正在尝试使用 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();
}
最佳答案
- 您实际上并没有通过将 KeyEvent w 命名来检查 w 键。您需要检查
if (w.getKeyCode() == KeyEvent.VK_W)
- Java 中的 Y 坐标从顶部的 0 开始,因此您可能需要从
CharY
中减去以使其向上。 - 这将更新两次,一次是在按下该键时,另一次是在您松开该键时。不确定这是否是您真正想要的。
在不知道
paint
函数内部内容的情况下,或者甚至实现它时,很难说问题是否实际上不在那里,但它应该看起来像公共(public)无效油漆(图形g){ g.drawImage(yourImage, CharX, CharY, null); }
关于java - Swing 是否持续扫描键盘输入(java)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16861302/