需要一个方法立即响应多个按键

时间:2014-11-13 13:53:34

标签: java swing

我不是很擅长java。我可以做所有简单的基本工作,但我不能让复杂的事情发挥作用。我有一个main类,其中包含JFrame和容器以及ColorPanel ...然后这里是ColorPanel类来绘制所有内容。 person课程现在只画一个正方形......我找不到办法使用KeyListener或任何其他方法来让我的方形男人回应多次按键(他们只移动一个方向在一个时间,并不是很顺利)。我看过每个人都说的内容,但链接对我来说太难以理解如何将它应用到我的程序中。请有人帮忙!如果你这样做,请举例说明不包括我读过的令人困惑的网站的链接。假装你正在和宝宝或其他什么交谈。

public class ColorPanel extends JPanel implements KeyListener {

Person Drake;
Person Grant;

public ColorPanel(Color backColor) {
    setBackground(backColor);
    Drake = new Person(100, 100);
    Drake.setColor(Color.magenta);
    Color boodyliciousBlue = new Color(50, 0, 255);
    Grant = new Person(300, 200);
    Grant.setColor(boodyliciousBlue);
    addKeyListener(this);
    setFocusable(true);
}

public void paintComponent(Graphics g) {
    super.paintComponent(g);
    Drake.draw(g);
    Grant.draw(g);
}

@Override
public void keyPressed(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.VK_W) {
        Drake.move(0, -10);
    }
    if (e.getKeyCode() == KeyEvent.VK_S) {
        Drake.move(0, 10);
    }
    if (e.getKeyCode() == KeyEvent.VK_A) {
        Drake.move(-10, 0);
    }
    if (e.getKeyCode() == KeyEvent.VK_D) {
        Drake.move(10, 0);
    }
    repaint();
}

@Override
public void keyReleased(KeyEvent e) {
}

@Override
public void keyTyped(KeyEvent e) {
}
}

0 个答案:

没有答案