CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  GUI 设计

关于java paint(Graphics g)函数调用的一个小问题?

楼主zaxinglewa(杂幸乐蛙)2005-04-02 14:57:58 在 Java / GUI 设计 提问

在程序中怎样对paint(Graphics   g)函数调用的?repaint()函数是在怎么事件下才调用paint(Graphics   g)的,有什么限制条件和响应操作啊? 问题点数:20、回复次数:5Top

1 楼zaxinglewa(杂幸乐蛙)回复于 2005-04-02 15:06:39 得分 0

是不是和组件有关系?什么关系?怎么解决啊?Top

2 楼zaxinglewa(杂幸乐蛙)回复于 2005-04-02 15:23:21 得分 0

我遇到的问题是:在我添加完一些组件后再用repaint()方法不能成功调用paint(Graphics   g)了!我认为这是组件引起的,但是不知道怎么引起的?我在JFrame.getContentPane()上加了一个JPanel和JLabel.它的Layout是null。Top

3 楼DESL(奇多多 o_O (★★★★))回复于 2005-04-02 16:43:36 得分 0

在方法中使用repaint方法就会调用paint方法Top

4 楼blackpark(暖咖啡)回复于 2005-04-02 20:37:23 得分 5

在Applet类中repaint()先调用update()清除面板,然后吊paint()方法  
  JApplet类的update()不再清除背景了,它掉paint()Top

5 楼DanielYWoo(绿色毒汁)回复于 2005-04-06 17:55:14 得分 15

等消息分发线程处理一个重绘消息的时候,会调用paint方法,  
  如果你调用了repaint,如果组件是轻量级的,则不擦除背景并要求夫窗口重绘,如果父窗口是轻量级的,继续向上找,直到找到一个重量级父窗口(本地实现窗口),擦除背景,最后在系统的实践队列中插入一个消息,表示组件需要被重绘,如果发现队列中有这个消息,那么消息将会被合并(message   collapse),等到处里这个消息的时候,再调用update重绘。  
   
  JComponent的update默认实现是直接调paint(),这样paint被调用,组建被重绘  
  但是重写update()可以限定重绘的范围来实现增量重绘(一般很难实现),这样性能会搞很多  
   
  总之,paint/update方法一般由消息分发线程调用,你经常调用的是repaint  
   
  明白?  
   
  不明白看看这个  
  http://java.sun.com/products/jfc/tsc/articles/painting/Top

相关问题

  • 如何在C函数中调用C++函数(gcc/g++)?
  • 函数调用
  • 函数调用
  • 调用函数
  • 函数调用
  • 函数调用
  • 函数调用?
  • 函数调用函数
  • 子函数调用?
  • 函数的调用

关键词

  • 函数
  • 组件
  • 消息
  • 调用
  • painting
  • repaint
  • graphics g
  • 方法
  • 实现
  • 背景

得分解答快速导航

  • 帖主:zaxinglewa
  • blackpark
  • DanielYWoo

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo