gpt4 book ai didi

java - 在没有事件的情况下检索 JavaFX 中的鼠标位置

转载 作者:行者123 更新时间:2023-11-30 07:52:56 26 4
gpt4 key购买 nike

我想在显示舞台之前检索当前鼠标位置的 x 和 y 坐标。

到目前为止,我发现在 JavaFX 中获取鼠标位置的唯一方法是在 MouseEvent 中,这不适用于我的情况。此外,我发现可以通过 java.awt.MouseInfo 检索位置。但是,我认为这是个坏主意(我使用 JavaFX 而不是 AWT),至少在我的情况下,会导致 HeadlessException

是否有其他干净的可能性来检索 JavaFX 中的鼠标位置而不会太黑(例如,模拟 MouseEvent 只是为了获取位置)?

非常感谢!

最佳答案

好吧,您可以使用 Robot 类获取鼠标坐标。这是一个例子。

com.sun.glass.ui.Robot robot =
com.sun.glass.ui.Application.GetApplication().createRobot();

int y = robot.getMouseY();
System.out.println("y point = " + y);
int x = robot.getMouseX();
System.out.println("x point= " + x);

它在 linux(基本操作系统)上进行了尝试,并且有效。

更新:经过一番谷歌搜索后,我发现 TestFX 看起来像是为 Robot 类实现原型(prototype)的尝试。看看下面给出的链接。 https://github.com/TestFX/Robot http://mail.openjdk.java.net/pipermail/openjfx-dev/2015-December/018412.html

您也可以这样做,以获取坐标。

public void start(Stage primaryStage) throws Exception {
GlassRobot robot = new GlassRobotImpl();
Point2D point = robot.getMouseLocation();
double x = point.getX();
double y = point.getY();
System.out.println("y = " + y);
System.out.println("x = " + x);
if(x > 10) {
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}

关于java - 在没有事件的情况下检索 JavaFX 中的鼠标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45201006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com