我通过使用十字架显示鼠标的位置来为我的程序创建鼠标跟踪器。但是,当我快速移动鼠标以测试代码性能的完整性时,我经历了滞后 - 十字架落在鼠标后面,直到鼠标停止移动才会赶上。
我猜我需要某种多线程解决方案才能解决这个问题,但我不知道该怎么做,因为我对这个概念还是比较陌生的。任何javafx专家都可以提供一些见解吗?非常感激。
以下是鼠标侦听器的部分代码:
private void setMouseMoved(String [] time) {
setOnMouseMoved((MouseEvent event) -> {
double x = event.getX();
double y = event.getY();
Platform.runLater(new Runnable() {
@Override
public void run() {
setMoveObjects(time,x,y);
}
});
});
}
// Set the bounds for the mouse trackpad.
private void setMoveObjects(String[] time, double x, double y) {
if (x > xORIGIN && x < xEND && y > yORIGIN && y < yEND) {
setMoveHVlines(x, y);
}
}
// creating the mouse cross;
private void setMoveHVlines(double x, double y) {
HLINE.setStartY(y);
HLINE.setEndY(y);
VLINE.setStartX(x);
VLINE.setEndX(x);
}