Java屏幕截图工具 捕获屏幕详解编程语言
2023-06-13 09:20:28 时间
private ScreenCaptureUtil scrCaptureUtil = null;// 捕获屏幕的工具类
private PaintCanvas canvas = null;// 画布,用于画捕获到的屏幕图像
public ScreenCaptureFrame() {
super("Screen Capture");
init();
/**
* 初始化
private void init() {
scrCaptureUtil = new ScreenCaptureUtil();// 创建抓屏工具
canvas = new PaintCanvas(scrCaptureUtil);// 创建画布
Container c = this.getContentPane();
c.setLayout(new BorderLayout());
c.add(canvas, BorderLayout.CENTER);
JButton capButton = new JButton("抓 屏");
c.add(capButton, BorderLayout.SOUTH);
capButton.addActionListener(this);
this.setSize(400, 400);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
public void actionPerformed(ActionEvent e) {// 点击“抓屏”按钮时,在画布上画屏幕图像
canvas.drawScreen();
public static void main(String[] args) {
new ScreenCaptureFrame();
* 抓屏工具类
class ScreenCaptureUtil {
private Robot robot = null;// 抓屏的主要工具类
private Rectangle scrRect = null;// 屏幕的矩形图像
public ScreenCaptureUtil() {
try {
robot = new Robot();// 创建一个抓屏工具
} catch (Exception ex) {
System.out.println(ex.toString());
// 获取屏幕的矩形图像
Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize();
scrRect = new Rectangle(0, 0, scrSize.width, scrSize.height);
/**
* 抓屏方法
* @return 返回一个图像
public BufferedImage captureScreen() {
BufferedImage scrImg = null;
try {
scrImg = robot.createScreenCapture(scrRect);// 抓的是全屏图
} catch (Exception e) {
System.out.println(e.toString());
return scrImg;
* 画布类,用于显示抓屏得到的图像
class PaintCanvas extends JPanel {
private ScreenCaptureUtil scrCaptureUtil = null;// 抓屏工具
private BufferedImage scrImg = null;// 待画的图像
public PaintCanvas(ScreenCaptureUtil screenUtil) {
this.scrCaptureUtil = screenUtil;
/**
* 重载JPanel的paintComponent,用于画背景
protected void paintComponent(Graphics g) {
if (scrImg != null) {
int iWidth = this.getWidth();
int iHeight = this.getHeight();
g.drawImage(scrImg, 0, 0, iWidth, iHeight, 0, 0, scrImg.getWidth(),
scrImg.getHeight(), null);
/**
* 画屏幕图像的方法
public void drawScreen() {
Graphics g = this.getGraphics();
scrImg = scrCaptureUtil.captureScreen();// 抓屏,获取屏幕图像
if (scrImg != null) {
this.paintComponent(g);// 画图
g.dispose();// 释放资源
}
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10160.html
cjava相关文章
- Java设置全局变量_java如何定义全局变量
- 在java中print和println_JAVA命令行参数
- java 把对象转成map_Java对象转换成Map[通俗易懂]
- java语言的特点_Java语言有什么特点?
- java使用md5_Java_MD5的使用「建议收藏」
- java如何打印菱形_JAVA输出菱形
- JAVA外文参考文献_java参考文献近五年
- 【已解决】三种解决方法:Cannot deserialize value of type `java.util.Date` from String
- java zip 工具类详解编程语言
- Web开发中常用的时间处理Java工具类详解编程语言
- Java操作日期时间的工具类详解编程语言
- Java通用的Excel文件生成工具类,支持生成文件和浏览器直接下载详解编程语言
- Java通用工具类方法详解编程语言
- Java 反射工具类详解编程语言
- 文件排序Java工具类详解编程语言
- Java工具类实现校验公民身份证的有效性详解编程语言
- Java集合工具类详解编程语言
- 一些格式的Java工具类详解编程语言
- Java学习笔记之七java函数的语法规则总结详解编程语言
- Java学习笔记之五java数组详解编程语言
- Java实现MSSQL数据库连接(java连接mssql)
- java解压缩zip和rar的工具类详解编程语言
- Java的图片处理工具类详解编程语言
- Java程序构建基于Redis的缓存系统(java用redis)
- Oracle与Java的连接:揭秘数据库开发技术之间的神奇联系(oracle连接java)
- Java实现Redis事务管理(redis事务java)
- Java与Oracle同步一种新的数据库模式(java同步oracle)
- Java基础之java处理ip的工具类