Java 摆动变焦应用

Java 摆动变焦应用,java,swing,Java,Swing,我试图设计一个缩放应用程序,它可以缩放鼠标指针周围的矩形区域 /* *要更改此许可证标题,请在“项目属性”中选择“许可证标题”。 *要更改此模板文件,请选择工具|模板 *然后在编辑器中打开模板。 */ 包装缩放 import java.awt.AWTException; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.MouseInfo; import java

我试图设计一个缩放应用程序,它可以缩放鼠标指针周围的矩形区域

/* *要更改此许可证标题,请在“项目属性”中选择“许可证标题”。 *要更改此模板文件,请选择工具|模板 *然后在编辑器中打开模板。 */ 包装缩放

import java.awt.AWTException;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.PointerInfo;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.Window;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;

/**
 *
 * @author keyur Parekh
 */
public class Zoom extends JFrame implements Runnable {

    Robot r;
    Window wnd;
    int width, height;

    /**
     */
    public Zoom() {
        try {
            r = new Robot();
            Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
            width = (int) d.getWidth();
            height = (int) d.getHeight();
            System.out.println(width + " " + height);
            wnd = new Window(this);
            wnd.setSize(400, 400);
            wnd.setLocation(0, 0);
            wnd.setVisible(true);
        } catch (AWTException e) {
            System.out.println(e);
        }
        Thread t = new Thread();
        t.start();
    }

    public static void main(String[] args) {
        new Zoom();
    }

    @Override
    public void run() {
        while (true) {            
            PointerInfo pi = MouseInfo.getPointerInfo();
            Point p = pi.getLocation();
            int x = (int) p.getX();
            int y = (int) p.getY();

            Graphics g = wnd.getGraphics();
            Rectangle rect =  new Rectangle(x, y, 150, 150);
            BufferedImage img = r.createScreenCapture(rect);
            g.drawImage(img, 0, 0, 250, 250, Color.white, this);
        }
    }

}
在这种情况下,输出并不像预期的那样出现,窗口正常打开,但当我将鼠标悬停在它上面时,它只是没有放大。。。。 由于此图像是打印屏幕,因此不显示鼠标指针,但仅显示在窗口上


有人能帮帮我吗。

对不起,伙计们,我已经找到了为什么会发生这种情况的答案。在初始化参数中的thread类时,我应该提供关于应该运行哪个run方法的信息,所以初始化必须是这样的

Thread t = new Thread(this)

你打算怎么办?请复习你的问题。