在另一个上面绘制新面板

时间:2011-04-07 00:09:05

标签: java jpanel paint layer

我有一个程序,其中基本面板只是绘制背景(树木,水等),我有一个播放器和其他物体在屏幕上移动。我不想在整个事情上调用repaint(),因为它会减慢我的速度,因为它重新整理了整个事物。当我尝试在顶部添加一个将重新绘制并处理移动对象的新面板时,我的代码中没有任何反应。这就是我在第一个

的构造函数中所拥有的
public GamePanel()
{ //some code
   top = TopPanel();
   top.setSize(this.getSize());
   add(top);
 //some more code
}

然后在toppanel的课程中

public TopPanel()
    {

    }
    public void paintComponent(Graphics g)
    {
        i.drawItem(//);
        player.draw(//fields);
    }

无论我做什么,当我运行它时,我都无法在面板上显示任何内容。

1 个答案:

答案 0 :(得分:2)

在绘制复杂但静态的“背景”并将其他内容绘制在顶部时,我的一般方法是将背景绘制为BufferedImage,并在绘制动态部分之前简单地重绘图像。