如楼上提示,设置一下双缓冲试一下,如下:pane.setDoubleBuffered(true);

解决方案 »

  1.   

    在mouseDragged里调用repaint方法,然后重载其UI类的paint方法,在这个方法里画图。
      

  2.   

    public void paint( Graphics g )
      {
        //画背景和缓冲图
        g.setColor(Color.gray);
        g.fillRect(0,0,getWidth(),getHeight());
        g.drawImage(image,0,0,this);    //image为你的缓冲图,你之前画的图都画在image这个图片上,最后再被画出来(即显示出来)
      }setXORMode相当于在其它颜色上加了某个颜色的滤镜
    g.setXORMode(Color.green);  //设置遮蔽颜色为绿色
    g.fillOval(170,80,15,15);
    g.setPaintMode(); //用完之后设回一般绘图模式
      

  3.   

    首先考虑设置缓冲,
    其次检查代码在paint相关部分的代码,是否有问题,
    还要排除机器配置原因
      

  4.   

    用pane.setDoubleBuffered(true);好象没什么反应呀,问题还是存在
      

  5.   

    在下面的方法中重绘
    public void paintChildren(Graphics g)
    {
    }在鼠标事件中重绘太耗资源了
      

  6.   

    如:绘制一个矩形
    Graphics2D g2D = (Graphics2D) g;
    g2D.drawRect(x, y, width, height);
      

  7.   

    看看这个http://community.csdn.net/Expert/topic/3354/3354172.xml?temp=.5436975