翻看以前的笔记,发现awt包里有个Robot类,看看它能干啥
大概意思就是,此类用于生成本机系统输入事件,用于测试自动化、自运行演示以及其他需要控制鼠标和键盘的应用程序。Robot的主要目的是促进Java平台实现的自动化测试。
那可以做的事情就多了
笔记里的,不知道是抄的还是自己写的,为了简单点。就是隔一段时间截取当前屏幕图像
public static void main(String[] args) throws AWTException, InterruptedException {
// write your code here
Robot robot = new Robot();
JFrame jframe = new JFrame();
//设置标题
jframe.setTitle("监控屏幕工具");
JLabel label = new JLabel();
jframe.add(label);
jframe.setSize(800, 600);
//设置可见
jframe.setVisible(true);
//设置置顶
jframe.setAlwaysOnTop(true);
//控制台退出模式
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//获取屏幕大小
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension dm = toolkit.getScreenSize();
while (true) {
//一个矩形面板
Rectangle rec = new Rectangle(0, 0, (int) dm.getWidth(), (int) dm.getHeight());
//按照矩形截取图片到缓冲流
BufferedImage img = robot.createScreenCapture(rec);
//缩放图片
BufferedImage newImg = resize(img, jframe.getWidth(), jframe.getHeight());
label.setIcon(new ImageIcon(newImg));
Thread.sleep(1000);
}
}
public static BufferedImage resize(BufferedImage img, int newW, int newH) {
int w = img.getWidth();
int h = img.getHeight();
//创建一个缩放后的图片流
BufferedImage newImg = new BufferedImage(newW, newH, img.getType());
Graphics2D g = newImg.createGraphics();
//设置模式
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
//按比例缩放
g.drawImage(img, 0, 0, newW, newH, 0, 0, w, h, null);
g.dispose();
return newImg;
}
抛砖引玉而已,做个复习。
页面更新:2024-05-05
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号