关于java paint(Graphics g)函数调用的一个小问题? 我遇到的问题是:在我添加完一些组件后再用repaint()方法不能成功调用paint(Graphics g)了!我认为这是组件引起的,但是不知道怎么引起的?我在JFrame.getContentPane()上加了一个JPanel和JLabel.它的Layout是null。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在方法中使用repaint方法就会调用paint方法 在Applet类中repaint()先调用update()清除面板,然后吊paint()方法JApplet类的update()不再清除背景了,它掉paint() 等消息分发线程处理一个重绘消息的时候,会调用paint方法,如果你调用了repaint,如果组件是轻量级的,则不擦除背景并要求夫窗口重绘,如果父窗口是轻量级的,继续向上找,直到找到一个重量级父窗口(本地实现窗口),擦除背景,最后在系统的实践队列中插入一个消息,表示组件需要被重绘,如果发现队列中有这个消息,那么消息将会被合并(message collapse),等到处里这个消息的时候,再调用update重绘。JComponent的update默认实现是直接调paint(),这样paint被调用,组建被重绘但是重写update()可以限定重绘的范围来实现增量重绘(一般很难实现),这样性能会搞很多总之,paint/update方法一般由消息分发线程调用,你经常调用的是repaint明白?不明白看看这个http://java.sun.com/products/jfc/tsc/articles/painting/ 请问这个为什么编译不通过呢? 怎么设置图片适合swing组件 如何判断是哪个组件触发的事件 列表中为什么会多个空格! socket传递多个对象的问题 用Imanage.put(Menu.font,font);方法设置默认字体为何不好用; 利用JavaBeans在应用程序中创建组件 请教一个jmf的设计问题 散分 关于public? {共享}我有 Thinking in Java 中 英 版的电子书 要的报名 菜鸟请问 ARRAYLIST 和数组有什么区别啊
JApplet类的update()不再清除背景了,它掉paint()
如果你调用了repaint,如果组件是轻量级的,则不擦除背景并要求夫窗口重绘,如果父窗口是轻量级的,继续向上找,直到找到一个重量级父窗口(本地实现窗口),擦除背景,最后在系统的实践队列中插入一个消息,表示组件需要被重绘,如果发现队列中有这个消息,那么消息将会被合并(message collapse),等到处里这个消息的时候,再调用update重绘。JComponent的update默认实现是直接调paint(),这样paint被调用,组建被重绘
但是重写update()可以限定重绘的范围来实现增量重绘(一般很难实现),这样性能会搞很多总之,paint/update方法一般由消息分发线程调用,你经常调用的是repaint明白?不明白看看这个
http://java.sun.com/products/jfc/tsc/articles/painting/