【发布时间】:2011-04-07 00:09:05
【问题描述】:
我有一个程序,其中基本面板仅绘制背景(树木、水等),并且我有一个播放器和其他对象在屏幕周围移动。我不想在整个事情上调用 repaint() 因为它会减慢我的速度,因为它会重新绘制整个事情。当我尝试在顶部添加一个将重新绘制很多并处理移动对象的新面板时,我的代码中没有任何反应。这是我在构造函数中的第一个
public GamePanel()
{ //some code
top = TopPanel();
top.setSize(this.getSize());
add(top);
//some more code
}
然后在顶部面板的类中
public TopPanel()
{
}
public void paintComponent(Graphics g)
{
i.drawItem(//);
player.draw(//fields);
}
无论我做什么,当我运行它时,我都无法在面板上显示任何内容。
【问题讨论】:
-
您使用的是什么布局管理器,一个空布局?如果是这样,您需要设置 TopPanel 的位置和大小。
-
如需尽快获得更好的帮助,请发帖SSCCE。
-
我试过了,唯一有效的方法是覆盖paintChildren,但这只会让事情变慢。