public class Movement implements ActionListener {
MazeModel model = new MazeModel();
public void keyPressed(KeyEvent e){ //all of the different movement keys
if(e.getKeyCode() == KeyEvent.VK_W || e.getKeyCode() == KeyEvent.VK_UP){
model.moveUP(model.getUserY());
}
else if(e.getKeyCode() == KeyEvent.VK_A || e.getKeyCode() == KeyEvent.VK_LEFT){
model.moveLEFT(model.getUserX());
}
else if(e.getKeyCode() == KeyEvent.VK_S || e.getKeyCode() == KeyEvent.VK_DOWN){
model.moveDOWN(model.getUserY());
}
else if(e.getKeyCode() == KeyEvent.VK_D || e.getKeyCode() == KeyEvent.VK_RIGHT){
model.moveRIGHT(model.getUserX());
}
}
//no need for either of these at the moment
public void keyRealeased(KeyEvent e){}
public void keyTyped(KeyEvent e){}
//painting the image
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage("player.png", model.getUserX(), model.getUserY(), this);
}
//every time a key is pressed the screen will repaint the image
public void actionPerformed(ActionEvent ae){
repaint();
}
}
Why am I unable to use super.paintComponent(g);
?
It says that it is undefined for type Object.
为什么我无法使用super.paintComponent(g);?它表示对于Object类型它是未定义的。
Also it says that drawImage is not applicable to my image. In addition I am unable to repaint();
when an action is performed in public void actionPerformed(ActionEvent ae)
.
它还说drawImage不适用于我的图像。另外我无法重画();当在public void actionPerformed(ActionEvent ae)中执行动作时。
2 个解决方案
#1
public class Movement implements ActionListener {
public class Movement实现ActionListener {
your class is not a JFrame nor a JPanel.
你的类不是JFrame,也不是JPanel。
#2
Your class has to extend JPanel
你的班级必须扩展JPanel
#1
public class Movement implements ActionListener {
public class Movement实现ActionListener {
your class is not a JFrame nor a JPanel.
你的类不是JFrame,也不是JPanel。
#2
Your class has to extend JPanel
你的班级必须扩展JPanel