Javafx 中的自定义光标设置

hot*_*zst 5 java javafx

我知道您可以通过 CSS 定义光标,如JavaFX 自定义 css 光标中所述,甚至可以像这样全局设置它:

private void setCursor(Scene scene) {
    Dimension2D dim = ImageCursor.getBestSize(64, 64);
    URL url;
    if (dim.getWidth() > 32) {
        url = getClass().getResource("/icons/64/cursor.png");
    } else {
        url = getClass().getResource("/icons/32/cursor.png");
    }
    try {
        Image img = new Image(url.openStream());
        scene.setCursor(new ImageCursor(img));
    } catch (IOException e) {
        logger.warn("Failed to load cursor icon from {}", url);
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,这仅全局设置默认光标,而其他类型的光标(例如插入符号、处理)保持不变。有没有办法为 JavaFX 应用程序提供涵盖所有情况的游标集?

此外,通过上述解决方案,光标被绑定到场景,这意味着,一旦它离开场景并且例如悬停在菜单栏上,它就会恢复到操作系统中设置的默认值。有没有办法在舞台或应用程序而不是场景的级别上定义光标?

一个可以接受的答案也是:做不到。那么我就不需要再看下去了。