我知道你可以像JavaFX custom css cursor中描述的那样通过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);
}
}
然而,这只是全局设置默认光标,而其他类型的光标(例如插入符号,处理)保持不变。有没有办法为JavaFX应用程序提供覆盖所有情况的游标集?
此外,通过上述解决方案,光标与场景相关联,这意味着,一旦它离开场景,例如将鼠标悬停在菜单栏上,它将恢复为操作系统中设置的默认值。有没有办法在舞台或应用程序的级别上定义光标而不是场景?
可接受的答案也是:无法做到。然后我不需要进一步了解。