我的场景中有一个按钮,单击该按钮时,光标会变为十字准线,用户可以通过单击鼠标在屏幕上选择 X、Y 位置,然后光标会变回来。 为此,我正在使用
scene.setCursor(Cursor.CROSSHAIR); //Change cursor to crosshair
scene.setCursor(Cursor.DEFAULT); //Change cursor to default
问题是,一旦将鼠标拖离框架,它就会变回默认值。仅当它位于窗口内时,它才保持为十字准线。我知道在 Java 中不可能与框架之外的事物进行交互,这就是为什么我在这个项目中使用 JNativeHook 作为鼠标监听器。 那么有没有办法改变全局光标呢?
最佳答案
你不能也不应该改变整个屏幕的光标,因为用户会对他的鼠标改变的原因感到困惑,但你可以通过两种方式做到这一点
- 您可以创建一个更改光标的 .bat 文件,并从您创建的 java 程序中以管理员权限运行该文件
或者 - 您可以制作一个覆盖整个屏幕的透明场景,这样光标将始终位于您的应用内,这是一个非常糟糕的解决方案,如果您的应用有框架,则不会可以接受,但无论如何这是一个解决方案
关于java - 在JavaFX中设置全局光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51956874/