在JavaFX中设置全局游标

时间:2018-08-21 21:21:27

标签: java javafx jnativehook

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

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

问题是,一旦将鼠标从框架中拖出,它将变回默认值。当它在窗口内时,它仅保留为十字准线。我知道在Java中不可能与框架外的东西进行交互,这就是为什么我在此项目中将JNativeHook用于鼠标监听器。 这样,有没有办法更改全局光标?

1 个答案:

答案 0 :(得分:2)

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

  1. 您可以制作一个.bat文件来更改光标,并从您创建的Java程序内部以管理员权限运行该文件。

    OR
  2. 您可以制作一个覆盖整个屏幕的透明场景,因此光标将始终位于您的应用内部,这是非常糟糕的解决方案,如果应用具有框架,则不会可以接受,但无论如何都是解决方案