JDK 1.3中增加了一个Robot的类,内置了一个屏幕截取的方法[createScreenCapture],所以说对整个屏幕取图是一件很简单的事情。这里讨论一下如何实现对于屏幕某一鼠标拖选区域的屏幕截取。
网上java截屏的代码,都是调用Robot类的方法实现整个屏幕截取的,半天也没有找到关于鼠标拖动时进行区域截屏的代码。想了一下,还是可以实现的。问题的关键是在没有Java程序显示的情况下如何实现对鼠标的监听。这个比较难呀,不太清楚怎么实现,不过想到一个比较笨的方法:先将屏幕整个抓图保存下来,然后将图像显示个一个JFrame上,在JFrame内实现对区域抓屏。
猜测其他的抓图类的程序在选择了抓图操作后,整个界面好像锁定一样,所有程序都不再处理鼠标事件,貌似也是用的这种原理:用自己的面板以全屏的方式显示,以便遮挡住所有程序,同时将抓屏操作前的屏幕以图片的形式显示在自己的面板上,然后就可以在自己的面板上对抓屏得到的图像进行截取了。
程序设计的思路:
1、 选择了抓屏操作后,由Robot类对当前的整个屏幕进行截取操作,保存图像
2、将图像显示到一个JFrame上,因为要显示整个屏幕,所以JFrame要去掉所有的装饰,也就是说JFrame不能有标题栏,大小要和屏幕尺寸一样。 去掉JFrame的装饰可用下面的代码实现JFrame对象.setUndecorated(true)
3、因为在JFrame上要即要画屏幕的图像,又要在鼠标拖动时画出选择区域,为方便,将图像和选择区域放到两个不同的面板上完成绘制操作。两个面板层次位置可由JFrame内置的JLayeredPane实现,将两个面板放到JLayeredPane的不同的层上。
4、计算选择区域位置需要简单关注一下,这个不难。
5、为了方便操作,将抓图程序运行后入到系统托盘中。 这个用到了SystemTray和TrayIcon两个类。
因操作系统托盘的类类为JDK 1.6新增的,所以本文的代码只能在JDK 1.6上运行
代码已经更新,可以到下面文章对应的链接中下载。
http://daimojingdeyu.iteye.com/admin/blogs/235539
- 描述: 运行效果图
- 大小: 12.2 KB
分享到:
相关推荐
博文链接:https://daimojingdeyu.iteye.com/blog/235539
CopyScreen.Prg是一个 VFP版的屏幕截取程序
这是一个仿QQ实现的屏幕截取软件 加入了全局的快捷键功能,只要Ctrl+Alt+A就可以将程序调出来,然后鼠标会改变,可以自由地选择需要截取的区域并改变该区域大小。 一句话,全仿QQ
使用JAVA写的简单屏幕共享程序,服务器端截取屏幕图片多线程发送给局域网内的客户端,客户端接受并显示
NULL 博文链接:https://daimojingdeyu.iteye.com/blog/337141
这是一个纯java编写的屏幕截取工具,可以保存或复制到写字板上等功能。
运行该程序,可以直接截取当前屏幕,并把图片保存在用户指定目录下!
java程序实现网页截取,网上有好多,一般都不能真正的截取,这个真的有
windows平台下使用C++视频屏幕截取功能,能够截取指定区域,能够开关鼠标的显示,工程下载下来可直接编译运行起来,配套的测试demo写的比较简单,可以根据自己的应用场景调用插件测试。
java 录制屏幕 截屏 并 回放 程序(把图片的保存路径名改了就能用)学习!
pb截取屏幕的功能,类微信截屏功能 适合PB开发人员。 导入sru文件 pb截取屏幕的功能,类微信截屏功能 pb截取屏幕的功能,类微信截屏功能 pb截取屏幕的功能,类微信截屏功能 pb截取屏幕的功能,类微信截屏功能 pb截取...
屏幕截取程序 (抓图)
Java 实现头像的截取,并上传头像。 项目使用说明: 1,要下载maven ,并配置环境变量 2,将image.jsp里面的图片换成你的本地图片 3,通过maven 打包。 4,部署到tomcat.打开image.jsp页面就可以验证了。 ...
网上找了很多屏幕截图的东西,这里指定截取屏幕一个LinerLayout中的内容。自动截图保存到本地。
精品必须10分啊,里面包含了java项目源代码和所需jar包,使用了DJNativeSwing组件技术实现。
基于java的QQ截屏工具的设计和实现能够实现对屏幕的随机截取,复制,保存以及添加文字等操作,便于用户对数据的处理。 该软件的功能: (1)随机获取屏幕指定区域; (2)编辑(添加文字)截图; (3)存储...
QT6/QT5 屏幕截取程序示例代码,具体参考博客:https://blog.csdn.net/qq_37529913?type=blog QT GrabWindow截取屏幕
该截图程序使用键盘钩子dll开启捕捉,实现圈中屏幕区域。
通过选中区域大小截取屏幕内容,并保存为图片
Pocket PC屏幕截取程序以及代码,EVC代码。