我想让一个程序动态地显示桌面,但是出现问题,代码如下:import java.awt.Canvas;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;import javax.swing.JFrame;public class SnapShot extends JFrame {
private static BufferedImage image;
private static int serinal = 1; /**
* Launch the application
*
* @param args
*/
public static void main(String args[]) {
try {
final SnapShot frame = new SnapShot();
final Canvas c = new Canvas() { public void paint(Graphics g) {
super.paint(g);
g.drawImage(image, 0, 0, this); }
};
frame.getContentPane().add(c); new Thread() {
public void run() { while (true) {
Dimension d = Toolkit.getDefaultToolkit()
.getScreenSize();
try {
image = (new Robot())
.createScreenCapture(new Rectangle(0, 0,
(int) d.getWidth(), (int) d
.getHeight()));
// File f = new File("d:/temp/" + serinal + ".jpg");
// ImageIO.write(image, "jpg", f);
// serinal++;
c.repaint();
Thread.sleep(2000);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}.start(); frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
} /**
* Create the frame
*/
public SnapShot() {
super();
setBounds(100, 100, 500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//
}}
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;import javax.swing.JFrame;public class SnapShot extends JFrame {
private static BufferedImage image;
private static int serinal = 1; /**
* Launch the application
*
* @param args
*/
public static void main(String args[]) {
try {
final SnapShot frame = new SnapShot();
final Canvas c = new Canvas() { public void paint(Graphics g) {
super.paint(g);
g.drawImage(image, 0, 0, this); }
};
frame.getContentPane().add(c); new Thread() {
public void run() { while (true) {
Dimension d = Toolkit.getDefaultToolkit()
.getScreenSize();
try {
image = (new Robot())
.createScreenCapture(new Rectangle(0, 0,
(int) d.getWidth(), (int) d
.getHeight()));
// File f = new File("d:/temp/" + serinal + ".jpg");
// ImageIO.write(image, "jpg", f);
// serinal++;
c.repaint();
Thread.sleep(2000);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}.start(); frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
} /**
* Create the frame
*/
public SnapShot() {
super();
setBounds(100, 100, 500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//
}}
解决方案 »
- 这算不算网上银行可能的安全漏洞???
- Thread 有一构造方法是private exit(); 好象任何线程结束时都要调用,是不是??
- 在同一目录下找不到类
- 编译能通过,为什么不发生事件响应?
- 泛型问题,无分,请教高手!
- 关于Date类的问题
- 关注!请问各位applet怎么获取本身panel上的图像?
- 请问,在jdk1-2-2中,import所需的东西在什么地方,我怎么找不到阿
- 请问SCJP好不好考?好不好找工作?
- Spring jdbc 动态的将参数Insert 至对应的表栏位
- 发2个简单问题,请来看看~~
- 求一使用addAncestorListener()的代码,本人不太了解API的描述,忘高手指点一二。
但是做不出想要的效果
import java.awt.Canvas;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;import javax.swing.JFrame;public class SnapShot extends JFrame implements Runnable {
private BufferedImage image; private static int serinal = 1; private myCanvas c; /**
* Launch the application
*
* @param args
*/
public static void main(String args[]) {
SnapShot frame = new SnapShot();
frame.creatImage(frame);
} public void creatImage(SnapShot frame) {
try {
c = new myCanvas();
frame.getContentPane().add(c);
Thread mthread = new Thread(frame);
mthread.start();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
} public void run() { while (true) { try { c.repaint();
Thread.sleep(2000);
} catch (Exception ex) {
ex.printStackTrace();
}
}
} class myCanvas extends Canvas {
public void paint(Graphics g) {
super.paint(g);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
try {
image = (new Robot()).createScreenCapture(new Rectangle(0, 0,
(int) d.getWidth(), (int) d.getHeight()));
} catch (AWTException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
g.drawImage(image, 0, 0, this); }
} /**
* Create the frame
*/
public SnapShot() {
super();
setBounds(100, 100, 500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//
}}