java robot createScreenCapture截图实例【转自百度空间】
java robot createScreenCapture截图范例【转自百度空间】
原文来自于
http://hi.baidu.com/leejun_2005/blog/item/dae85d07850fc376030881ee.html
今天看到了远控, 写到一半不知下手,于是google了一篇,如下~
1、new一个class
package firstTest; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class GuiCamera { private String fileName; // 文件的前缀 private String defaultName = "GuiCamera"; static int serialNum = 0; private String imageFormat; // 图像文件的格式 private String defaultImageFormat = "png"; Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); public GuiCamera() { fileName = defaultName; imageFormat = defaultImageFormat; } public GuiCamera(String s, String format) { fileName = s; imageFormat = format; } public void snapShot() { try { // 拷贝屏幕到一个BufferedImage对象screenshot BufferedImage screenshot = (new Robot()).createScreenCapture(new Rectangle(0, 0, (int) d.getWidth(), (int) d.getHeight())); serialNum++; // 根据文件前缀变量和文件格式变量,自动生成文件名 String name = fileName + String.valueOf(serialNum) + "." + imageFormat; File f = new File(name); System.out.print("Save File " + name); // 将screenshot对象写入图像文件 ImageIO.write(screenshot, imageFormat, f); System.out.print("..Finished!\n"); } catch (Exception ex) { System.out.println(ex); } } public static void main(String[] args) { GuiCamera cam = new GuiCamera("J:/Documents and Settings/June/桌面", "png");// cam.snapShot(); } }
2、new一个form,在form上面拖放一个button与label,然后添加一段如下代码:
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
JFileChooser jFileChooser = new JFileChooser();//FileDialog
jFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int returnVal = jFileChooser.showOpenDialog(getParent());
if (returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: "
+ jFileChooser.getSelectedFile().getName());
String fileChooser = jFileChooser.getSelectedFile()
.getAbsolutePath()
+ "\\";
jLabel1.setText("截图已经保存到 :" + fileChooser);
GuiCamera cam = new GuiCamera(fileChooser, "jpg");
cam.snapShot();
}
}
3、效果如图所示,该方法createScreenCapture是robot类中的一个方法,在jdk1.3中加入的。(图第一次挂了,尼玛的百。度防盗链)