import java.awt.*; 
import java.awt.event.*;
import java.util.*;
import java.applet.*;
public class pp extends Applet
{   myCanvas c1;Frame f;CardLayout a=new CardLayout();Timer timer=new Timer();int i=1;
    public void init()
   {c1=new myCanvas();f=new Frame();f.setVisible(true);f.setLayout(a);f.setBounds(500,500,600,600);
    c1.setBackground(Color.red);
    c1.setSize(600,600);
    f.add(c1,"1");timer.schedule(new MyTask(),100,10000);
    
    }
   
    class myCanvas extends Canvas
     {Toolkit tk;
      Image img;
    
      myCanvas()
      {tk=getToolkit();
       
       
       img=tk.getImage(i+".jpg");
       }
         public void paint(Graphics g)
         {g.drawImage(img,0,0,560,336,this);
          }
      } 
         
      class MyTask extends java.util.TimerTask
          { public void run(){这里怎么做?
            }
           }    
              
    public static void main(String args[])
    {pp t=new pp();t.init();
     }
}

解决方案 »

  1.   


    public void run(){
        c1.img = c1.getImage(++i + ".jpg");
        c1.repaint();
    }
    //或者你在myCanvas里面写个方法来改变图片,又或者你在myCanvas里面一次把图片全部图片读出来
    //如下:
    class myCanvas extends Canvas
    {
          Toolkit tk;
          Image[] imgs;
       
          myCanvas()
         {
          tk=getToolkit();
          for(int i=1;i<11;i++){//假设有10张图片
              imgs[i-1]=tk.getImage(i+".jpg");
          }     
         
         }
         public void paint(Graphics g)
        {
          if(i>10){
            i = 1;
          }
          g.drawImage(imgs[i++],0,0,560,336,this);
         }
    }
    class MyTask extends java.util.TimerTask
    {
        public void run(){
            //这里这样做
            c1.repaint();
        }
    }