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
分享到:
相关推荐
在这个特定的案例中,我们讨论的是一个Java实现的屏幕截取程序,允许用户进行区域内的截屏操作。这通常涉及到图形用户界面(GUI)的创建、事件监听以及图像处理等多个技术领域。 首先,我们需要理解如何在Java中...
屏幕截取程序是一个常见的工具,它允许用户捕获屏幕上的特定区域或整个屏幕,并可能包含诸如保存、编辑或分享截图等功能。 首先,我们需要定义一个“状态”接口或抽象类,这将规定所有可能的屏幕截图状态以及与这些...
在Android开发中,有时我们需要实现特定功能,例如只截取应用程序界面的一部分,而不是整个屏幕。这个功能在"指定屏幕内区域截图"中得以体现。在本文中,我们将深入探讨如何在Android中实现这一功能,包括如何选取...
【Java 实现屏幕截图小程序详解】 在 Java 编程中,实现屏幕截图功能涉及多个关键知识点,包括图形用户界面(GUI)、事件处理、图像处理以及文件操作。以下是对这些知识点的详细说明: 1. **图形用户界面(GUI)**...
综合以上信息,这个项目实现了一个基于MFC的屏幕截图工具,用户可以通过自定义选择区域,然后将截取的屏幕图像保存到文件中。整个过程涉及到Windows API调用、MFC组件的使用、图像数据处理和文件操作等多个知识点。
【Java截图小程序】是一款小巧而实用的工具,它利用Java编程语言实现,允许用户方便地进行屏幕截图并可能提供一些额外的功能,如保存、编辑或分享截图。在本篇文章中,我们将深入探讨Java中实现截图功能的核心技术...
Java截屏小程序是一种实用工具,它允许用户在Java环境中实现屏幕捕获功能。这个程序能够创建PNG、JPG和GIF三种格式的图像文件,满足了不同场景下的需求。源码的提供使得开发者可以直接查看和学习其内部实现,进一步...
`Robot`类提供了`createScreenCapture(Rectangle area)`方法,可以用来截取指定区域的屏幕图像。对于网页截图,我们需要确定网页在屏幕上的位置和大小,这可能需要与JavaScript交互以获取浏览器渲染的页面尺寸。 ...
3. 截取选区:使用`ViewGroup`的`onDraw()`方法,遍历子View,只处理在选定区域内的部分。在`onDraw()`中,我们可以使用`Canvas`对象的`save()`、`clipRect()`和`drawBitmap()`等方法截取并绘制选区内容。 三、...
该项目是针对Java编程语言设计的一款QQ屏幕截图工具,旨在提供便捷的屏幕捕获功能,类似于QQ内置的截图工具。此工具系统集成了多种实用特性,包括选择截图区域、编辑截图、保存截图等,同时提供了详细的项目报告、...
在Java中实现屏幕截图功能,通常会用到`java.awt`和`java.awt.image`这两个包中的类。以下是一个基于Java的区域截图程序的详细解释: 首先,我们创建一个主类`ScreenShotTest`,它包含了一个`main`方法,这是程序的...
"nircmd.exe" 文件是 NirCmd 工具的可执行程序,这是一个强大的命令行工具,能够执行许多Windows系统任务,其中包括屏幕截图。NirCmd 提供了灵活的参数设置,使得用户可以定制截图的各种选项,例如定时截取、选择...
本设计旨在实现一个基于Java的QQ截屏工具,该工具能够对屏幕进行随机截取、复制、保存以及添加文字等操作,为用户提供便捷的数据处理方式。 首先,该工具具备随机获取屏幕指定区域的功能。用户可以通过简单的操作,...
在Java中,我们可以利用开源库如SWT(Standard Widget Toolkit)或Apache POI等来实现屏幕截图功能。SWT是Eclipse项目的一部分,它提供了与操作系统原生GUI组件交互的能力,使得Java程序可以创建更加美观且功能丰富...
1. **全屏截图和区域截图**:支持全屏截图和自定义区域截图两种模式,用户可以根据需要选择截取整个屏幕或者指定区域。 2. **多种截图方式**:提供多种截图方式,包括快捷键触发、系统托盘图标点击和界面按钮点击等...
基于java的截屏工具的设计和实现能够实现对屏幕的随机截取,复制,保存以及添加文字等操作,便于用户对数据的处理。 (1)随机获取屏幕指定区域; (2)编辑(添加文字)截图; (3)存储截图;
在Java中实现手机截屏涉及到Android SDK或JavaFX等库的使用,具体步骤和知识点包括: 1. **Android SDK中的截屏功能**: - Android系统提供了丰富的API接口供开发者使用。在Java环境中,可以通过`Instrumentation`...
其次,**屏幕截图功能**在Java中可以通过Java AWT库中的`Robot`类来实现。`Robot`类允许开发者模拟键盘和鼠标操作,其中`createScreenCapture()`方法可以用来捕获整个屏幕或指定区域的图像。 接着,**图像处理**...
1. **随机截图**:用户根据提示选择指定屏幕区域,系统通过坐标选取截取区域。 2. **编辑功能**:利用`Graphics`类提供的绘图方法,如`drawLine()`、`fillRect()`等,实现在图片上添加图形和文字。 3. **存储功能**...