0

我的场景中有一个按钮,单击该按钮时,光标变为十字准线,用户可以通过单击鼠标选择屏幕上的 X、Y 位置,然后光标变回。为此,我正在使用

scene.setCursor(Cursor.CROSSHAIR); //Change cursor to crosshair
scene.setCursor(Cursor.DEFAULT); //Change cursor to default

问题是,一旦将鼠标拖离框架,它就会变回默认值。只有在窗口内时,它才会保持为十字准线。我知道在 Java 中不可能与框架之外的东西进行交互,这就是为什么我在这个项目中为我的鼠标侦听器使用 JNativeHook。有了这个,有没有办法改变全局光标?

4

1 回答 1

2

您不能也不应该更改整个屏幕的光标,因为用户会对更改鼠标的原因感到困惑,但您可以通过两种方式进行

  1. 您可以制作一个更改光标的 .bat 文件,并从您制作的 java 程序中以管理员权限运行此文件

  2. 您可以制作一个覆盖整个屏幕的透明场景,因此光标将始终在您的应用程序内,这是一个非常糟糕的解决方案,如果您的应用程序有一个框架,它是不可接受的,但无论如何这是一个解决方案
于 2018-08-22T10:12:13.820 回答