java - 在JavaFX中设置全局光标

标签 java javafx jnativehook

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

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

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

最佳答案

你不能也不应该改变整个屏幕的光标,因为用户会对他的鼠标改变的原因感到困惑,但你可以通过两种方式做到这一点

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

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

关于java - 在JavaFX中设置全局光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51956874/

相关文章:

layout - 在自定义控件中使用 TextFlow 时,TitledPane 未垂直调整大小

java - 混淆按键跳跃案例

java - Hibernate没有注释实体

java - 递归地填充 TreeMap

java - 地理编码代码不起作用 - Googlemaps

java - 如何按需停用jnativehook?

java - Apache MINA SFTP - 限制用户看到的目录结构

java - 我尝试在Intellij中使用gluon运行新项目时出错

java - 传递对 javafx.application.Application 的引用