下面是编程之家 jb51.cc 通过网络收集整理的代码片段。
编程之家小编现在分享给大家,也给大家做个参考。
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
/**
* 捕获屏幕,屏幕截图工具
*/
public class ScreenCaptureFrame extends JFrame implements ActionListener {
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,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,iWidth,iHeight,scrImg.getWidth(),scrImg.getHeight(),null);
}
}
/**
* 画屏幕图像的方法
*/
public void drawScreen() {
Graphics g = this.getGraphics();
scrImg = scrCaptureUtil.captureScreen();// 抓屏,获取屏幕图像
if (scrImg != null) {
this.paintComponent(g);// 画图
}
g.dispose();// 释放资源
}
}
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
相关文章
总结
以上是编程之家为你收集整理的Java屏幕截图工具 捕获屏幕全部内容,希望文章能够帮你解决Java屏幕截图工具 捕获屏幕所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250