我正在用javafx完成Java中的A * Pathfinder。 我想做一个“动画”来追踪这条路。 目前,当我按下“搜索”按钮时,从开始到结束,这条路都是最好的路,然后,这条路就画了。
search.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
if (p.getStart() != null && p.getEnd() != null) {
current = p.getStart();
while (!doNext()) {}
repaint();
} else
System.err.println("Start or end isn't define !");
});
我想一步一步地进行延迟(例如50ms)
我已经尝试做这样的事情
search.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
if (p.getStart() != null && p.getEnd() != null) {
current = p.getStart();
while (!doNext()) {
Platform.runLater(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
repaint();
}
});
}
} else
System.err.println("Start or end isn't define !");
}
});
但是它不起作用,只是给repaint()添加了一个延迟,但是它已经完成了,道路将显示为完整(而不是逐步显示)。