我需要在拖动时更改光标,并希望在立即按下鼠标后更改它,所以我这样做:
public class Graph extends Pane{
void someInit(){
setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent e) {
logger.info("pressed graph x-> " + e.getX() + " | y->" + e.getY());
setCursor(Cursor.MOVE);
}
});
}
}
按下鼠标按钮并且不移动任何像素后,光标不会改变。鼠标移动最小后会发生变化。如何在不移动鼠标的情况下强制立即显示它。
答案 0 :(得分:2)
通过CSS更改时,光标会立即更新,例如:
.moving {
-fx-cursor: closed_hand;
}
然后你的代码看起来像:
public class Graph extends Pane{
void someInit() {
setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent e) {
logger.info("pressed graph x-> " + e.getX() + " | y->" + e.getY());
Graph.this.getStyleClass().add("moving");
}
});
}
}
您可以稍后在另一个事件中使用以下内容恢复光标:
getStyleClass().remove("moving");
答案 1 :(得分:0)
这是JavaFX中的一个错误,已在8中修复。