关于如何用java写一个播放连续截图的程序的问题!高手进 本帖最后由 yang3wei 于 2010-12-20 22:57:03 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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();// }// }// }// }} 这种方法的话,竟然爆出这样的错误,我实在是不能理解Exception in thread "Image Fetcher 0" java.lang.OutOfMemoryError: Java heap space顺便说一下我电脑的配置:2.6g双核AMD CPU,2G内存这个跟虚拟机的设置有关你配置高但没用 启动的时候加个参数增加虚拟机内存(不通编译环境操作不一样 百度之) java获取不了图片路径 JFilechooser的两个set方法不懂 请问这样一段jstl标签如何写 我在看<<CORE JAVA>>,看到对象,继承,接口,很多看不懂,有些看懂了,但如是自巳写又感到无从下手?郁闷! 请问高手一个关于String的问题。 ~~~~~~看看这段代码?~~~~~ 我们公司的论坛,新开张的 请问java中怎样调用dos来打开文档 一个奇怪的JAVA中文问题!请各位大虾指明!!! Java程序编译成功,但无法运行,请要出了什么问题?要如何修改? 这个用java实现 有什么规律啊 求高手 netbeans怎样实现可视化编程呢?
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();
// }
// }
// }
// }
}
Exception in thread "Image Fetcher 0" java.lang.OutOfMemoryError: Java heap space
顺便说一下我电脑的配置:2.6g双核AMD CPU,2G内存这个跟虚拟机的设置有关你配置高但没用 启动的时候加个参数增加虚拟机内存(不通编译环境操作不一样 百度之)