我不是很擅长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) {
}
}