本帖最后由 yang3wei 于 2010-12-20 22:57:03 编辑

解决方案 »

  1.   

    package code.play;import java.awt.Color;
    import java.awt.Frame;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.Panel;
    import java.awt.Toolkit;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;public class Player2 extends Frame {
    private static final long serialVersionUID = 8055029906280922502L;
    private static Toolkit tk = Toolkit.getDefaultToolkit();

    // 从1到270共270张图片
    private static final int COUNT = 270;
    private Image[] videoImages = new Image[COUNT];

    public Player2() {
    this.setSize(1024, 768);
    this.setLocation(0, 0);
    this.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(1);
    }
    });
    this.iniPictures();
    ContentPane cp = new ContentPane();
    this.add(cp);
    new Thread(cp).start();
    this.setVisible(true);
    }

    // 不预先就加载好的话,到时候卡的很!
    public void iniPictures() {
    for(int i = 0; i < COUNT; i ++) {
    videoImages[i] = tk.getImage(Player2.class.getClassLoader()
    .getResource("jpgImages/Test" + (i + 1) + ".JPG"));
    }
    } public static void main(String[] args) {
    new Player2();
    }

    class ContentPane extends Panel implements Runnable {
    private static final long serialVersionUID = -5543236608700268480L;
    private int picNumber = 0;

    public ContentPane() {
    this.setSize(1024, 768);
    this.setVisible(true);
    } public void paint(Graphics g) {
    if(picNumber < COUNT) {
    System.out.println("images/Test" + (picNumber + 1) + ".JPG");
    // Color c = g.getColor();
    // g.setColor(Color.BLACK);
    // g.fillRect(0, 0, 1024, 768);
    // g.setColor(c);
    g.drawImage(videoImages[picNumber], 0, 0, this);
    }
    }

    public void run() {
    while(picNumber < COUNT) {
    this.repaint();
    picNumber ++;
    try {
    Thread.sleep(30);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    // if(picNumber == 10) {
    // picNumber = 0;
    // }
    }
    System.exit(0);
    }
    }

    // class T extends Thread {
    // private ContentPane cp;
    // private int times = 0;
    // public T(ContentPane cp) {
    // this.cp = cp;
    // }
    //
    // public void run() {
    // while(times < 270) {
    // this.cp.repaint();
    // this.times ++;
    // System.out.println("第多少次了:" + times);
    // try {
    // Thread.sleep(50);
    // } catch (InterruptedException e) {
    // e.printStackTrace();
    // }
    // }
    // }
    // }
    }
      

  2.   

    这种方法的话,竟然爆出这样的错误,我实在是不能理解
    Exception in thread "Image Fetcher 0" java.lang.OutOfMemoryError: Java heap space
    顺便说一下我电脑的配置:2.6g双核AMD CPU,2G内存这个跟虚拟机的设置有关你配置高但没用 启动的时候加个参数增加虚拟机内存(不通编译环境操作不一样 百度之)