由于MouseEvent需要JFrame处于激活状态下,才能够监听鼠标的状态。
于是就有了通过截图整个桌面,生成虚假桌面,来获取坐标的程序。
但是该程序无法获得桌面的即时状态。
如果要使用KeyEvent的话,同样需要使用JFrame。
于是就想,是不是有办法能不通过JFrame就能够按照需要获得鼠标当前坐标的方法呢。
就这样,这个各种简陋的程序诞生了。
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.PointerInfo;
import java.util.Scanner;
public class MouseTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
if (sc.nextLine().equalsIgnoreCase("check")) {
PointerInfo a = MouseInfo.getPointerInfo();
Point b = a.getLocation();
double x = b.getX();
double y = b.getY();
System.out.println("x is " + x);
System.out.println("y is " + y);
} else if (sc.nextLine().equalsIgnoreCase("exit")) {
break;
}
}
}
}
可以让你在console处,输入check,来获得坐标;输入exit来中断程序。
在此过程中,鼠标可以看到桌面的即时情况,也可以与鼠标互动。
但是,仍旧无法脱离控制端。也算是多一种思考。
不知道大家是否有其它建议,还望提点。