java swing中的paint问题repaint()方法调用

cfd406635982 2010-03-17 05:34:56
public class GamePanel extends JPanel {

public Snake snake;
public Wall wall;
public Food food;

public void display(Snake snake,Wall wall,Food food) {
this.snake = snake;
this.wall = wall;
this.food = food;
this.repaint();
System.out.println("over");
}

@Override
public void paint(Graphics g) {
System.out.println("draw");
this.snake.drawBody(g);
this.wall.drawWall(g);
this.food.drawFood(g);
}

}

我的代码如上,但是over能打印出来,但是paint()方法没有被调用,一次都没有?
什么地方有问题吗? 哪位大哥知道?
...全文
736 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
__威少__ 2011-09-03
  • 打赏
  • 举报
回复
paint()方法中需要重写吧super.paint(g)
liubxi 2010-06-26
  • 打赏
  • 举报
回复
public void paint(Graphics g)
由 Swing 调用,以绘制组件。应用程序不应直接调用 paint,而是应该使用 repaint 方法来安排重绘组件。
此方法实际上将绘制工作委托给三个受保护的方法:paintComponent、paintBorder 和 paintChildren。按列出的顺序调用这些方法,以确保子组件出现在组件本身的顶部。一般来说,不应在分配给边框的 insets 区域绘制组件及其子组件。子类可以始终重写此方法。只想特殊化 UI(外观)委托的 paint 方法的子类只需重写 paintComponent。

摘自java api 文档
liubxi 2010-06-26
  • 打赏
  • 举报
回复
paint 方法是由系统自动调用的,不需要显示调用
cfd406635982 2010-03-17
  • 打赏
  • 举报
回复
自己顶下! 怎么回事啊? 谁知道啊??

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧