重画
public void paint(Graphics g)
{
    if(this.routeImage!=null)
    {
     g.drawImage(this.routeImage,0,0,Color.red,this);
    }
}

解决方案 »

  1.   

    是不是应该重写update(),让它直接调用paint()
      

  2.   

    我重写update(Graphics g)但是拖动滚动条时这个方法并不执行
      

  3.   

    不知下面这个贴子对你有没有帮助http://expert.csdn.net/Expert/topic/2260/2260498.xml?temp=.4619104引用里面的片断回复人: veijerd(玮杰) ( ) 信誉:100  2003-9-15 22:44:48  得分:140 
     Awt被设计为假定图象可能是从缓慢的网络连接上得来的。java创建了一个新的线程来加载该文件,然后在文件实际加载完之前便返回。
    在你的paint()中,因为图片尚未加载,所以paint一次次地尝试调用绘制图片,count的增加值由加载的速度决定。可以采用MediaTracker来完成,这是它的典型应用
    你的改正代码如下,我调试过了,你看看  :)import java.awt.*;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.MediaTracker;
    import javax.swing.*;public class InfoPanel extends JPanel
    {
        private Image img = Toolkit.getDefaultToolkit().getImage(
                    InfoPanel.class.getResource("DDG51.gif"));
        private int count = 0;    public InfoPanel()
        {
    MediaTracker tracker=new MediaTracker(this);
    tracker.addImage(img,0);
    try
    {
    tracker.waitForID(0);
    }
    catch(InterruptedException e)
    {
    e.printStackTrace();
    }
        }    public void paint(Graphics g){
            super.paint(g);
            g.drawImage(img,0,0,this.getWidth(),this.getHeight(),this);
            count ++;
            System.out.println(count);
        }    public static void main(String[] args){
            JFrame f = new JFrame();
            f.addWindowListener(new WindowAdapter(){
                public void windowClosing(WindowEvent e){
                    System.exit(0);
                }
            });
            f.setSize(400,200);
            InfoPanel info = new InfoPanel();
            f.getContentPane().add(info);
            f.setVisible(true);
        }
    }
      

  4.   

    谢谢liad,谢谢大家!
    移动滚动条,都要贴一次图,没做别的事g.drawImage(routeImage,0,0,this);
    移动太快的话,它重画的频率也快,paint(g)方法处理不过来,会导致闪烁,
    如果我在paint(g)方法里加几条输出语句它会闪烁更严重,和速度有关!!
      
    routeImage是临时绘制的图片对象,不需要加在图片,是缓冲技术但没有缓冲功能
      

  5.   

    用SWING,它的组件都实现了双缓冲技术。
      

  6.   

    我的网页是客户端看的,所以不能特意在客户端安装一个jre,
    用swing.jar包太大,下在慢!
    如果拖动滚动条的话,为什么会出现字在垂直方向上拉长了,导致字变模糊?