![](https://csdnimg.cn/release/download_crawler_static/86556689/bg1.jpg)
第 1 页
Java小项目
学号:0715131008 姓名:郭荣烈 班级:网络工程
项目名称:
屏幕截图工具
功能描述:
实现类似QQ的桌面截图程序的功能。在按下鼠标左键不放后即可开始进行截图操作,拖动鼠
标选择要截取的区域。有八个可编辑点,可进行拖放和移动操作。在选择的区域双击鼠标左键即
可将当前选中的区域复制到系统剪贴板中。在图片编辑软件中粘贴即可看到所截取的图像。
设计方案:
建立一个CaptureScreen的主类继承了JFrame,作为主窗,有两个按钮start、cancel,对应开
始和退出。按下开始后进行截图操作。让主窗隐藏,将当前屏幕存到一个BufferedImage对象di中,
调用内部类CaptureSelect来进行截图区域的选择。CaptureSelect继承了JPanel并实现了
MouseListener、MouseMotionListener这两个接口。实现了对鼠标的移动、单击、拖动、双击的
处理。CaptureSelect类中重写JPanel的paintComponent()方法绘制组件,用当前屏幕di绘制背景,
并绘制了矩形选取框,和八个编辑点。对鼠标事件处理,并用repaint()方法来对当前选取框进行
动态更新。用一个枚举类States来存放鼠标光标的位图表示。方便对鼠标状态的显示。
CaptureSelect中定义了一个doMouseMoved()方法来处理移动鼠标时对要选择的区域进行初始化。
通过鼠标拖动选择区域,确定开始坐标StartX、StratY和Width、Height,将这部分图像存到一
个BufferedImage对象get中,然后利用Transferable这个接口来实现图像数据与系统剪切板的传
送。当双击鼠标时调用Complete()让主窗显示并将截取的图像存到系统粘贴板,弹出对话框提示
图像已复制到粘贴板。完成截图操作。
程序运行流程图:
关键技术:
图形用户界面设计,实现Transferable这个接口来实现图像数据与系统粘贴板之间的传送,实现
MouseListener、MouseMotionListener这两个接口来处理鼠标事件。
主窗
开始
退出
鼠标事件处理
单击 拖动
移动 双击
选取
编辑
程序结束
双击完成截图
将选取的图像存
到系统粘贴板