Java Robot对象实现服务器屏幕远程监视
来源:网络 更新时间:2014-12-2
摘要:
关键词:
1 引言
2 Java屏幕"照相机"的编写原理
3 Java屏幕"照相机"的实现
packageCamera;importjava.awt.image.BufferedImage;importjava.io.*;importjavax.imageio.*;importjava.awt.*;/********************************************************************该JavaBean可以直接在其他Java应用程序中调用,实现屏幕的"拍照"*ThisJavaBeanisusedtosnapshottheGUIina*Javaapplication!Youcanembeded*itintoyourjavaapplicationsourcecode,andus*ittosnapshottherightGUIoftheapplication*@seejavax.ImageIO*@authorliluqun(liluqun@263.net)*@version1.0******************************************************/publicclassGuiCamera{privateStringfileName;//文件的前缀privateStringdefaultName="GuiCamera";staticintserialNum=0;privateStringimageFormat;//图像文件的格式privateStringdefaultImageFormat="png";Dimensiond=Toolkit.getDefaultToolkit().getScreenSize();/*****************************************************************默认的文件前缀为GuiCamera,文件格式为PNG格式*Thedefaultconstructwillusethedefault*Imagefilesurname"GuiCamera",*anddefaultimageformat"png"****************************************************************/publicGuiCamera(){fileName=defaultName;imageFormat=defaultImageFormat;}/*****************************************************************@paramsthesurnameofthesnapshotfile*@paramformattheformatoftheimagefile,*itcanbe"jpg"or"png"*本构造支持JPG和PNG文件的存储****************************************************************/publicGuiCamera(Strings,Stringformat){fileName=s;imageFormat=format;}/*****************************************************************对屏幕进行拍照*snapShottheGuionce****************************************************************/publicvoidsnapShot(){try{//拷贝屏幕到一个BufferedImage对象screenshotBufferedImagescreenshot=(newRobot()).createScreenCapture(newRectangle(0,0,(int)d.getWidth(),(int)d.getHeight()));serialNum ;//根据文件前缀变量和文件格式变量,自动生成文件名Stringname=fileName String.valueOf(serialNum) "." imageFormat;Filef=newFile(name);System.out.print("SaveFile" name);//将screenshot对象写入图像文件ImageIO.write(screenshot,imageFormat,f);System.out.print("..Finished!\n");}catch(Exceptionex){System.out.println(ex);}}}