[英]Not sure why my KeyListener isn't working?
不完全確定為什么這不起作用......我實現了 KeyListener 並將其添加到我的面板中,這令人沮喪......發布的代碼是唯一與 KeyListener 相關的內容。 我已經嘗試了所有我可以使用 JFrame 來鍵入和移動所有代碼到任何有意義的東西。 我知道我有所有正確的代碼,因為我在這里查看了大約 15 個不同的教程和一堆問題。 請幫忙!
public class Dodgem extends JPanel implements KeyListener, ActionListener
{
public Dodgem()
{
addKeyListener(this);
setFocusable(true);
setPreferredSize(new Dimension(640,480));
player = new Projectile();
counter = 0;
t = new Timer(5, this);
t.start();
}
@Override
public void keyTyped(KeyEvent e)
{
}
@Override
public void keyPressed(KeyEvent e)
{
System.out.println("Key Pressed");
if(e.getKeyCode() == KeyEvent.VK_UP)
{
player.setVelY(-2);
}
if(e.getKeyCode() == KeyEvent.VK_DOWN)
{
player.setVelY(2);
}
if(e.getKeyCode() == KeyEvent.VK_LEFT)
{
player.setVelX(-2);
}
if(e.getKeyCode() == KeyEvent.VK_RIGHT)
{
player.setVelX(2);
}
}
@Override
public void keyReleased(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_UP || e.getKeyCode() == KeyEvent.VK_DOWN)
{
player.setVelY(0);
}
if(e.getKeyCode() == KeyEvent.VK_LEFT || e.getKeyCode() == KeyEvent.VK_RIGHT)
{
player.setVelX(0);
}
}
只需查看此問題右側的列,您就會看到至少有 10 個標題為“KeyListener 不起作用?”的問題。 或類似的東西。 發帖前先四處看看。
至於解決方案,根據我的經驗,KeyListeners 從焦點中獲取事件。 將它們添加到 JFrame 上的 JPanel 不會返回任何事件,但將它們直接添加到 JFrame 可能會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.