我有一个程序,其中的基础面板只是绘制背景(树木,水等),我有一个球员和其他物体在屏幕上移动。我不想在整个事情上调用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);
}
而且不管我做什么,我不能得到任何东西出现在当我运行它的面板。
您使用的是什么布局管理器,空布局?如果是这样,您需要设置TopPanel的位置和大小。 – MeBigFatGuy 2011-04-07 00:37:14
为了更快得到更好的帮助,请发布[SSCCE](http://pscode.org/sscce.html)。 – 2011-04-07 00:45:18
我已经尝试过,唯一那种工作是重写paintChildren,但这只会让事情变得更慢。 – 2011-04-07 00:46:14