如何根据不同的对象(使用二维坐标)更新jpanel上的多个图像?

2guxujil  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(271)

我的carcontroller类中有以下代码:

private class TimerListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        for (Car car : cars) {
            car.move();
            checkWallCollision(car);
            System.out.println(car.getPosition());
            int x = (int) Math.round(car.getPosition().x);
            int y = (int) Math.round(car.getPosition().y);
            frame.drawPanel.moveit(x,y);
            // repaint() calls the paintComponent method of the panel
            frame.drawPanel.repaint();
        }
    }
}

在drawpanel类中,这个代码扩展了jpanel:

void moveit(int x, int y){
        point.x = x;
        point.y = y;
    }

    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(volvoImage, point.x, point.y, null); 
    }

我想根据使用car.move()获得的cars新位置更新draw面板中的图像,但似乎无法确定如何使draw面板能够获取多辆车并将它们连接到正确的点坐标。
如何将给定的moveit调用连接到给定的图像并指向绘图面板?我试着创建一个新类来保存draw panel使用的图像和点,但是当我从carcontroller使用moveit()时,我需要能够识别正确的类。
这是一个重构任务,根据我的学校,应该需要最少的代码更改。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题