Java定期自动截屏的代码详解编程语言
2023-06-13 09:20:28 时间
/*******************************************************************
* 该JavaBean可以直接在其他Java应用程序中调用,实现屏幕的"拍照"
* This JavaBean is used to snapshot the GUI in a
* Java application! You can embeded
* it in to your java application source code, and us
* it to snapshot the right GUI of the application
* @see javax.ImageIO
* @version 1.0
*********************************************************************/
public class GuiCamera extends TimerTask {
private String fileName;//文件的前缀
private String defaultName = "GuiCamera";
static int serialNum = 0;
private String imageFormat;//图像文件的格式
private String defaultImageFormat = "png";
Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
/****************************************************************
* 默认的文件前缀为GuiCamera,文件格式为PNG格式
* The default construct will use the default
* Image file surname "GuiCamera",
* and default image format "png"
****************************************************************/
public GuiCamera() {
fileName = defaultName;
imageFormat = defaultImageFormat;
/****************************************************************
* 本构造支持JPG和PNG文件的存储
* @param s the surname of the snapshot file
* @param format the format of the image file,
* it can be "jpg" or "png"
****************************************************************/
public GuiCamera(String s, String format) {
fileName = s;
imageFormat = format;
/****************************************************************
* 对屏幕进行拍照
* snapShot the Gui once
****************************************************************/
public void snapShot() {
try {
// 拷贝屏幕到一个BufferedImage对象screenshot
BufferedImage screenshot = (new Robot())
.createScreenCapture(new Rectangle(0, 0, (int) dimension
.getWidth(), (int) dimension.getHeight()));
// 根据文件前缀变量和文件格式变量,自动生成文件名
String name = fileName + "." + 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 void run() {
snapShot();
public static void main(String[] args) {
Timer timer = new Timer();
int fileNumber = 0;
timer.schedule(new GuiCamera("C://11//Hello" + ++fileNumber, "png"), 0,
10000);
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10357.html
cjava相关文章
- fileinputstream java,使用url的Java fileinputstream
- java vo 什么意思_在Java中VO , PO , BO , QO, DAO ,POJO是什么意思
- fileinputstream java_Java FileInputStream close()方法
- java出现中文乱码_JAVA中文显示乱码问题「建议收藏」
- java启动器_JAVA基础:Java 启动器如何查找类
- java 正则表达式语法_JAVA正则表达式语法大全
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java jersey使用总结_jersey Java Jersey配置「建议收藏」
- java常量池在方法区还是堆_JAVA常量池
- 什么是重载什么是覆盖_java覆盖和重载的关系
- Java cast_java concat方法
- 50个常见的 Java 错误及避免方法(第三部分)详解编程语言
- java JNI: C 语言调用 Java 方法示例详解编程语言
- 运用Java进行Http表单数据自动提交详解编程语言
- Java学习笔记之三java中的变量和常量详解编程语言
- Java语法糖2:自动装箱和自动拆箱详解编程语言
- Java isAlive()方法的作用
- 玩转Linux:Java开发入门指南(linux上开发java)
- Java联合Redis:建立良好数据连接(java连接redis)
- Java里的Redis事务处理(redis事务java)
- 使用Redis和Java实现自动过期(redisjava过期)
- 时间设置Java中Redis缓存的自动过期时间(redisjava过期)
- 策略 使用Java实现Redis自动过期策略(redisjava过期)
- 数据库的操作Java与MySQL搭配:完美数据库操作(java对mysql)
- 让Java开发能力在Linux下得到更大发挥(java linux编程)
- 使用Linux安装Java轻松搞定!(linux java安装)
- 从java中调用matlab详细介绍