⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.java

📁 java screenpen,包括一些最基本的功能,有实际作用,也可作为初学的参考资料.
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package screenpen;import java.awt.AWTException;import java.awt.Color;import java.awt.Graphics;import java.awt.Rectangle;import java.awt.Robot;import java.awt.Toolkit;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseMotionListener;import java.awt.image.BufferedImage;import java.util.ArrayList;import java.util.List;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.JFrame;import javax.swing.JWindow;/** * * @author zhaolin */public class Main extends JWindow {    private Robot r;    public BufferedImage getImage() {        return image;    }    public void setImage(BufferedImage image) {        this.image = image;    }    private BufferedImage image;    private Rectangle rect;    private Line current;    private List<Line> history;    public Main() {        current = new Line();        history = new ArrayList<Line>();        try {            r = new Robot();        } catch (AWTException ex) {            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);        }        new ImageUpdateThread(this).start();                this.addMouseListener(new MouseListener() {            public void mouseClicked(MouseEvent e) {            }            public void mousePressed(MouseEvent e) {                current.setX1(e.getX());                current.setY1(e.getY());                setVisible(false);                //r.mouseMove(e.getXOnScreen(), e.getYOnScreen());                int buttonMask = 0;                switch(e.getButton()){                    case MouseEvent.BUTTON1:buttonMask = MouseEvent.BUTTON1_MASK;break;                    case MouseEvent.BUTTON2:buttonMask = MouseEvent.BUTTON2_MASK;break;                    case MouseEvent.BUTTON3:buttonMask = MouseEvent.BUTTON3_MASK;break;                                    }                r.mousePress(buttonMask);                updateImage();                setVisible(true);            }            public void mouseReleased(MouseEvent e) {                setVisible(false);                //r.mouseMove(e.getXOnScreen(), e.getYOnScreen());                int buttonMask = 0;                switch(e.getButton()){                    case MouseEvent.BUTTON1:buttonMask = MouseEvent.BUTTON1_MASK;break;                    case MouseEvent.BUTTON2:buttonMask = MouseEvent.BUTTON2_MASK;break;                    case MouseEvent.BUTTON3:buttonMask = MouseEvent.BUTTON3_MASK;break;                                    }                r.mouseRelease(buttonMask);                setVisible(true);            }            public void mouseEntered(MouseEvent e) {            //throw new UnsupportedOperationException("Not supported yet.");            }            public void mouseExited(MouseEvent e) {            //throw new UnsupportedOperationException("Not supported yet.");            }            });        this.addMouseMotionListener(new MouseMotionListener() {            public void mouseDragged(MouseEvent e) {                current.setX2(e.getX());                current.setY2(e.getY());                history.add((Line) current.clone());                repaint();                current.setX1(e.getX());                current.setY1(e.getY());            }            public void mouseMoved(MouseEvent e) {            //throw new UnsupportedOperationException("Not supported yet.");            }        });        this.setSize((int) Toolkit.getDefaultToolkit().getScreenSize().getWidth(), (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight());        this.setVisible(true);    }    public void paint(Graphics g) {        super.paint(g);        g.drawImage(image, 0, 0, this);        for (Line l : history) {            l.paintMySelf(image.getGraphics());        }    }    public BufferedImage capScreen() {        rect = new Rectangle();        rect.x = 0;        rect.y = 0;        rect.width = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();        rect.height = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();        return r.createScreenCapture(rect);    }    public void updateImage() {        this.image = capScreen();    }    public static void main(String[] args) {        new Main();    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -