这次是用java写的一个截图工具,这个项目的逻辑主要是
①先建立一个主操作界面
②通过Robot类 实例化了ro 通过控制本地控制输入源设备
③通过ro.createscreenCapture()方法得到是整个屏幕的截图,其中传递的参数是通过Tookit和Dimension获得的整个屏幕的大小,然后实例化的矩形
④最核心的代码部分就是对于该屏幕截图的裁剪处理,定义了一个继承JPanel的Temp内部类,里面重写了PaintComponent,主要的目的就是让用户进行裁剪操作,其中还包括各种鼠标的操作,将用户的选取通过getSubimage方法获得
⑤对获得的用户截图的处理,定义了一个Pic的内部类继承于JPanel里面实现了加入JTabbedPane的面板内容,并且实现了其中的复制,保存和删除按钮的事件
⑥最后就是对图片格式保存的处理
学习到的内容:
BufferedImage中的getSubimage方法,获得一张图片上规定选区的部分,
Robot中的createscreenCapture()方法,获得屏幕指定部分的截图,
通过UIManger改变界面的Java和本系统的界面风格,
了解到GUI界面可以用一个线程来启动
SwingUtilities.invokeLater(new Runnable(){
public void run()
{
new Screen();
}
});
对于enum,枚举类型的使用,在里面也可以实例化,如果里面要添加一些方法,在枚举完之后要添加有一个分号‘;’,然后再写所要添加的方法
加深了对于继承JPanel的使用
加深了对于鼠标事件的使用
对于以前基本没用过的repaint方法也得到了锻炼