JavaFX中由画布矩形覆盖的鼠标

时间:2016-04-28 08:55:48

标签: canvas javafx mouse

我在JavaFX中有一个带有两个矩形的画布。外部我在开始时只绘制一次,内部每0.25秒重绘一次。当我进入画布时,我将鼠标改为十字准线并在离开时返回默认值。

我的问题是,鼠标被innern矩形覆盖。 我应该重绘鼠标还是在JavaFX中存在css中的z-index?enter image description here

1 个答案:

答案 0 :(得分:0)

如果你在Canvas上绘制所有内容,你可以在javafx中实现z-order之类的东西,但不能。在Canvas上,绘图操作的顺序很重要。如果在光标后绘制内部矩形,则光标将被后面的绘图操作覆盖。

但是,因为您对整个画布使用相同的光标。我建议实际使用光标来改变光标的外观。为此,您可以将ImageCursor与十字准线图像一起使用:

Image img = new Image(getClass().getResource("crosshair.png").toExternalForm());

// create cursor from image with hotspot at center
Cursor crosshair = new ImageCursor(img, img.getWidth()/2, img.getHeight()/2);

canvas.setCursor(crosshair);