关于Java中repaint()的问题

another1019 2008-08-21 02:34:13
问个关于Java中repaint()的问题:
调用display()时打印出GamePanel's display! 但不显示GamePanel's PrintComponent,也就是System.out.println("GamePanel's PrintComponent")这条语句没有执行,repaint()方法为什么不能调用 printComponent(Graphics g)方法。

import java.awt.Graphics;
import javax.swing.JPanel;

public class RepaintDemo
{
public static void main(String args[])
{
GamePanel gamepanel = new GamePanel();
gamepanel.display();
}
}

class GamePanel extends JPanel
{
public void display()
{
System.out.println("GamePanel's display!");
this.repaint();
}

protected void printComponent(Graphics g) {
// TODO Auto-generated method stub
System.out.println("GamePanel's PrintComponent");
}
}



...全文
822 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hn1232 2009-05-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 greathawker 的回复:]

这个组件都没有显示, 怎么会调用printComponent?
[/Quote]
终于明白了!正解!!!!!!!!
hn1232 2009-05-28
  • 打赏
  • 举报
回复
噢!我遇到了和你一样的问题~~弄了一个上午,还没找出原因……
可是我以前也这么用过,没错啊……
aSysBang 2009-05-28
  • 打赏
  • 举报
回复
java中事件存放在EventQueue中有EDT(Event Dispatch Thread)派发
而Swing的绘制也因此分为 异步重绘请求 和 同步绘制请求
异步绘制请求
1、 Component.repaint();
2、 Component.repaint(int x ,int y ,int width ,int height);
同步绘制请求
1、JComponent.paintImmediately(int x ,int y ,int w ,int h);
2、Component.paint(Graphics);
有时用repaint()无法更新界面时,就是由于异步绘制请求不能马上被执行
所以这时就可以考虑使用同步绘制请求
landyou9 2009-05-28
  • 打赏
  • 举报
回复
repaint()的自动调用过程是这样的:repaint()-->update()-->paint()
你都没有paint方法
wudongchina 2008-10-25
  • 打赏
  • 举报
回复
是不是窗体最大后窗体重画了,还原时就没重画!
wudongchina 2008-10-24
  • 打赏
  • 举报
回复
Java中repaint()的问题:
写了一个程序 在通过点按钮在窗口调用update()显示一个图片,但是窗口最大后,图片就没有,
不知道为什么啊!
hero_winner 2008-08-21
  • 打赏
  • 举报
回复
你程序的执行过程如下:
GamePanel gamepanel = new GamePanel();//首先创建了一个GamePanel对象,
gamepanel.display(); //然后调用了display函数
并没有调用printComponent()函数
cdtobetter 2008-08-21
  • 打赏
  • 举报
回复
repaint()的自动调用过程是这样的:repaint()-->update()-->paint()
而不会自动调用printComponent()
greathawker 2008-08-21
  • 打赏
  • 举报
回复

这个组件都没有显示, 怎么会调用printComponent?

62,614

社区成员

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

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