我正在尝试设计一个缩放应用程序,它缩放围绕鼠标指针的矩形区域......
/ * *要更改此许可证标题,请在“项目属性”中选择“许可证标题”。 *要更改此模板文件,请选择“工具”|模板 *并在编辑器中打开模板。 * / 包缩放;
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);
}
}
}
在这个输出没有按照预期进行,窗口正常打开但是当我将鼠标悬停在它上面时,它只是没有放大.... 由于此图像是打印屏幕,因此它不显示鼠标指针,但它仅在窗口上。
有人可以帮助我。
答案 0 :(得分:0)
对不起,伙计们,但我已经找到了为什么会发生这种情况的答案。在初始化参数中的线程类时,我应该提供关于应该运行哪个run方法的内容,所以初始化必须是这样的......
Thread t = new Thread(this)