我的一个子线程中 的run函数调用了 另外一个函数
被调用的这个中有 canvas的 update()函数 这样好像就产生了冲突 子线程执行不了
我把哪个update去掉就没问题 了 这事为什么啊 ?
怎么解决?

解决方案 »

  1.   

    update是自动掉用的,要另外产生新的线程的
      

  2.   


     我知道 但还是不知道具体怎么解决 
     majy()Oo.冲天剑.oO()(技术永无止境 生命永不停息) /
     能再解释一下吗 ?
      

  3.   

    调用需要update部分的paint()方法!
      

  4.   

    public void toMove()
    {
    DecideDirection();

    Rectangle r = gameFrame.getBounds();
    if(Direction == 0 && isOutside())
         {
           yPosition = (int)r.getHeight()+20;
         }
         else if(Direction == 0 && !isOutside())
         {
         yPosition -= 5;
         }
         else if(Direction == 1 && isOutside())
         {
         xPosition = (int)r.getX();
         }
         else if(Direction == 1 && !isOutside())
         {
         xPosition += 5;
         }
         else if(Direction == 2 && isOutside())
         {
         yPosition = (int)r.getY();
         }
         else if(Direction == 2 && !isOutside())
         {
         yPosition += 5;
         }
         else if(Direction == 3 && isOutside())
         {
         xPosition = (int)r.getWidth()-20;
         }
         else if(Direction == 3 && !isOutside())
         {
         xPosition -= 5;
         }
        
         paintCanvas.resetPostion(xPosition, yPosition);
            paintCanvas.update(paintCanvas.getGraphics());
    }
    public class Reminder implements Runnable
    {
    public Reminder(Bug b, int s)
    {
    bug = b;
    seconds = s;
    }

       
        public void run()
        {
         while(true)
         { 
              bug.toMove();    
            try
            {
               Thread.currentThread().sleep(10);
            }
            catch(Exception e)
            {
            
            }
         }
        }
      
         
        private Bug bug;
        int     seconds;
       
    }
      

  5.   

    主要是哪个toMove()函数 
    我在Reminder 线程的run函数里调用了 toMove()函数 
    toMove()里又调用了 Canvas(画板)的update() 函数如果我的toMove()里不要那个upDate() 线程正常执行
    如果有 编译没错 执行的时候 有问题 它的提示如下:java.lang.NullPointerException
            at java.awt.Canvas.update(Canvas.java:113)
            at Bug.toMove(Bug.java:155)
            at Reminder.run(Reminder.java:40)
            at java.lang.Thread.run(Thread.java:534)
      

  6.   


    PEOPLE NA LI QU LE ?
      

  7.   

    从错误信息来看你的paintCanvas没有初始化,为NULL