【问题标题】:Why am I unable to use my paintComponent?为什么我无法使用我的paintComponent?
【发布时间】:2015-05-05 14:59:54
【问题描述】:
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();
    }
}

为什么我无法使用super.paintComponent(g);
它说它对于类型 Object 是未定义的。

它还说 drawImage 不适用于我的图像。此外,当在public void actionPerformed(ActionEvent ae) 中执行操作时,我无法repaint();

【问题讨论】:

  • public class Movement implements ActionListener { 不是JFrame 也不是JPanel
  • 总是在带有@Override 的方法之前是一个覆盖:keyTyped,尤其是paintComponent。如果它不会被覆盖。没有人叫它。

标签: java actionlistener paint keyevent actionevent


【解决方案1】:

public class Movement implements ActionListener {

您的课程既不是 JFrame 也不是 JPanel。

【讨论】:

  • (c/w - 如果 EPF 想要发布相同的答案,将删除)
  • 没有什么会调用动作监听器中不是重载的方法。你需要在组件中实现绘图,而不是监听器
【解决方案2】:

您的课程必须扩展 JPanel

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多