javafx cursor鼠标进入节点时变成移动图标,右键点击节点滑动时return但保持cursor不变
时间: 2023-07-11 19:26:20 浏览: 162
鼠标图标cursor
4星 · 用户满意度95%
您可以使用JavaFX中的`setOnMouseEntered` 和 `setOnMouseExited` 方法来设置鼠标进入和离开节点时的行为。同样,您可以使用`setOnMousePressed` 和 `setOnMouseDragged` 方法来设置右键点击并滑动时的行为。
以下是一个示例代码片段,可以实现当鼠标进入节点时鼠标光标变成移动光标,右键点击并滑动时保持光标不变但是进行节点拖动:
```java
node.setOnMouseEntered(event -> {
if (!event.isPrimaryButtonDown()) {
node.getScene().setCursor(Cursor.MOVE);
}
});
node.setOnMouseExited(event -> {
if (!event.isPrimaryButtonDown()) {
node.getScene().setCursor(Cursor.DEFAULT);
}
});
node.setOnMousePressed(event -> {
if (event.isSecondaryButtonDown()) {
node.getScene().setCursor(Cursor.DEFAULT);
event.consume();
}
});
node.setOnMouseDragged(event -> {
if (event.isSecondaryButtonDown()) {
event.setDragDetect(true);
event.consume();
}
});
```
在这个示例中,`node` 表示您要设置行为的节点对象。当鼠标进入节点时,如果鼠标左键没有按下,将鼠标光标设置为移动光标;当鼠标离开节点时,如果鼠标左键没有按下,将鼠标光标设置为默认光标。当鼠标右键按下时,将鼠标光标设置为默认光标,并消费事件,以防止该事件传递给其他处理程序。当鼠标右键按下并滑动时,将事件设置为拖动检测,并消费事件,以防止该事件传递给其他处理程序。
阅读全文