gpt4 book ai didi

java - KeyPressed 事件没有发生?

转载 作者:行者123 更新时间:2023-11-29 10:17:31 26 4
gpt4 key购买 nike

这段代码构建正确,一切似乎都有效,但 key 什么也没做。我认为要么是 Action 监听器,要么是椭圆没有更新。我正在尝试通过初学者 java 游戏编程。我确信这很容易,但我没有捕获它。如果这有所作为,我在 sublime text 2 的 mac 上。

package javagame;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaGame extends JFrame {

int x, y;

public class AL extends KeyAdapter {

public void keyPressed(KeyEvent e) {
int keycode = e.getKeyCode();
if(keycode == e.VK_LEFT); {
x-= 3;
}
if(keycode == e.VK_RIGHT); {
x+= 3;
}
if(keycode == e.VK_UP); {
y-= 3;
}
if(keycode == e.VK_DOWN); {
y+= 3;
}
}


public void keyReleased(KeyEvent e) {

}
}

public JavaGame() {
addKeyListener(new AL());
setTitle("Jave Game");
setSize(700, 700);
setResizable(false);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

x = 350;
y = 350;
}

public void paint(Graphics g) {
g.fillOval(x, y, 15, 15);

repaint();
}

public static void main(String[] args) {
new JavaGame();
}

}

最佳答案

您需要从 if 语句中删除分号:

if (keycode == e.VK_LEFT)
{
x-= 3;
}

目前,if 语句之后的代码块是独立呈现的,因为分号终止了这些语句。


一些 Swing 特定的注释:

  • 最好使用子类 JComponent 中的 paintComponent 以获得更好的绘制效果表现。
  • 使用Key bindings通过 KeyListener 改进按键事件管理。这是一个 example .

关于java - KeyPressed 事件没有发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13782305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com