• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

java截屏简单例子

java 搞代码 4年前 (2022-01-09) 35次浏览 已收录 0个评论

java截屏

* 运行后将当前屏幕截取,并最大化显示。

* 拖拽鼠标,选择自己需要的部分。

* 按Esc键保存图片到桌面,并退出程序。

* 点击右上角(没有可见的按钮),退出程序,不保存图片。

import java.awt.AWTException;import java.awt.Color;import java.awt.Dimension;import java.awt.Graphics;import java.awt.GraphicsDevice;import java.awt.GraphicsEnvironment;import java.awt.Rectangle;import java.awt.Robot;import java.awt.Toolkit;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.MouseMotionAdapter;import java.awt.image.BufferedImage;import java.awt.image.RescaleOp;import java.io.File;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;  import javax.imageio.ImageIO;import javax.swing.JFrame;import javax.swing.filechooser.FileSystemView;  /** * java截屏 * 运行后将当前屏幕截取,并最大化显示。 * 拖拽鼠标,选择自己需要的部分。 * 按Esc键保存图片到桌面,并退出程序。 * 点击右上角(没有可见的按钮),退出程序,不保存图片。 *  * @author JinCeon */public class SnapshotTest {    public static void main(String[] args) {        // 全屏运行        RectD rd = new RectD();        GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment()                .getDefaultScreenDevice();        gd.setFullScreenWindow(rd);    }}  class RectD extends JFrame {    private static final long serialVersionUID = 1L;    int orgx, orgy, endx, endy;    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();    BufferedImage image;    BufferedImage tempImage;    BufferedImage saveImage;    Graphics g;      @Override    public void paint(Graphics g) {        RescaleOp ro = new RescaleOp(0.8f, 0, null);        tempImage = ro.filter(image, null);        g.drawImage(tempImage, 0, 0, this);    }      public RectD() {        snapshot();        setVisible(true);        // setSize(d);//最大化窗口        setDefaultCloseOperation(EXIT_ON_CLOSE);        this.addMouseListener(new MouseAdapter() {            public void mousePressed(MouseEvent e) {                orgx = e.getX();                orgy = e.getY();            }        });        <p style="color:transparent">本文来源gao!%daima.com搞$代*!码$网3</p>this.addMouseMotionListener(new MouseMotionAdapter() {            public void mouseDragged(MouseEvent e) {                endx = e.getX();                endy = e.getY();                g = getGraphics();                g.drawImage(tempImage, 0, 0, RectD.this);                int x = Math.min(orgx, endx);                int y = Math.min(orgy, endy);                int width = Math.abs(endx - orgx)+1;                int height = Math.abs(endy - orgy)+1;                // 加上1,防止width或height为0                g.setColor(Color.BLUE);                g.drawRect(x-1, y-1, width+1, height+1);                //减1,加1都是为了防止图片将矩形框覆盖掉                saveImage = image.getSubimage(x, y, width, height);                g.drawImage(saveImage, x, y, RectD.this);            }        });        this.addKeyListener(new KeyAdapter() {            @Override            public void keyReleased(KeyEvent e) {                // 按Esc键退出                if (e.getKeyCode() == 27) {                    saveToFile();                    System.exit(0);                }            }        });    }      public void saveToFile() {        SimpleDateFormat sdf = new SimpleDateFormat("yyyymmddHHmmss");        String name = sdf.format(new Date());        File path = FileSystemView.getFileSystemView().getHomeDirectory();        String format = "jpg";        File f = new File(path + File.separator + name + "." + format);        try {            ImageIO.write(saveImage, format, f);        } catch (IOException e) {            e.printStackTrace();        }    }      public void snapshot() {        try {            Robot robot = new Robot();            Dimension d = Toolkit.getDefaultToolkit().getScreenSize();            image = robot.createScreenCapture(new Rectangle(0, 0, d.width,                    d.height));        } catch (AWTException e) {            e.printStackTrace();        }    }}

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:java截屏简单例子
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址