簡體   English   中英

Java-KeyListener不起作用

[英]Java - KeyListener not working

這一直讓我想整天撕掉頭發。 我正在嘗試這樣做,因此當我按下右箭頭鍵時,速度將達到10。我知道使我的精靈移動的方法可以工作,因為如果事先設置一個值,它將在屏幕上移動。 是KeyListener沒有執行任何操作:

import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;

public class Sprite implements KeyListener{
    public Image player = Toolkit.getDefaultToolkit().getImage("player.png");
    int x, y, dx, dy;

    public void doInit(){
        JFrame window = new JFrame();
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setSize(600, 400);
        window.setLocationRelativeTo(null);
        window.getContentPane().add(new ImageDraw());
        window.setVisible(true);
        window.setIgnoreRepaint(true);
        window.createBufferStrategy(2);
        window.getContentPane().addKeyListener(this);
    }

    public Image getSpriteHandle(){
        return player;
    }

    public void keyPressed(KeyEvent e) {
        int keyCode = e.getKeyCode();
        if(keyCode == KeyEvent.VK_RIGHT){
                dx = 10;
         }
    }   //end keyPressed

    public void keyReleased(KeyEvent e) {
        int keyCode = e.getKeyCode();
        if(keyCode == KeyEvent.VK_RIGHT){
                dx = 0;
         }
    }

    public void keyTyped(KeyEvent arg0) {

    } 

    public int moveX(){
        return dx;
    }

}   //end class

請幫我!

是KeyListener沒有做任何事情

您不應該使用KeyListener。

Swing被設計為與鍵綁定一起使用。 即使組件沒有焦點,也可以將Action映射到KeyStroke。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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