簡體   English   中英

不確定為什么我的 KeyListener 不起作用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM