📜  JSwing |使用Java Robot 创建放大工具

📅  最后修改于: 2022-05-13 01:55:46.296000             🧑  作者: Mango

JSwing |使用Java Robot 创建放大工具

Java Robot 是Java AWT(Abstract Window Toolkit)包的一部分。 Java Robot 用于生成本地系统输入事件,用于测试自动化、自运行演示和其他需要控制鼠标和键盘的应用程序。使用Java Robot 的目的是获得对鼠标、键盘等输入事件的控制。
在本文中,我们将使用Java Robot 创建一个放大工具。
使用方法:

  1. getPointerInfo() :返回一个 PointerInfo 实例,表示鼠标指针的当前位置。
  2. getLocation() :返回一个表示位置的点实例
  3. createScreenCapture(Rectangle r) :捕获矩形 r 内的屏幕部分。
  4. drawImage(Image i, int x, int y, ImageObserver o) :在屏幕上指定图像观察者的 x, y 位置绘制图像
  5. drawImage(Image i, int x, int y,,int w, int h, ImageObserver o) :在屏幕上的 x, y 位置和指定的宽度和高度绘制图像,指定图像观察者

使用Java Robot 创建放大工具的Java程序

Java
// Java program to create a Magnifying tool
// using Java Robot
 
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
class magnify extends JFrame {
 
    // object
    static magnify m;
 
    // image
    Image i;
 
    // default constructor
    magnify()
    {
        // create a frame
        super("magnify");
 
        // set size of frame
        setSize(200, 220);
        show();
 
        // function to magnify the image
        work();
    }
 
    // main function
    public static void main(String args[])
    {
 
        // object of class
        m = new magnify();
    }
 
    public void work()
    {
        try {
            // create a robot
            Robot r = new Robot();
 
            // while the frame is visible
            while (isVisible()) {
                // get the position of mouse
                Point p = MouseInfo.getPointerInfo().getLocation();
 
                // create a screen capture around the mouse pointer
                i = r.createScreenCapture(new Rectangle((int)p.getX() - 30,
                                                        (int)p.getY() - 30, 150, 150));
 
                // repaint the container
                repaint();
            }
            // exit the program
            System.exit(0);
        }
        catch (Exception e) {
            System.err.println(e.getMessage());
        }
    }
 
    // paint function
    public void paint(Graphics g)
    {
 
        // draw the image
        g.drawImage(i, 0, 0, 300, 300, this);
    }
}


输出 :

注意:以下程序可能无法在在线编译器中运行,请使用离线 IDE。请使用最新版本的Java