【发布时间】:2016-03-22 11:43:36
【问题描述】:
我正在构建一个应用程序,它在图表上显示不同寻路算法的结果。因此,每次扩展节点时,我都希望将其突出显示。出于这个原因,我有一个侦听器,每次扩展节点时都会执行该侦听器。此外,还有可能延迟该过程。
但新样式类似乎仅在算法完成后才呈现。 另一方面,控制台输出在运行时正确显示。
有问题的代码:
IDiGraphSearchListener<XYNode, CostEdge<XYNode>> listener = new IDiGraphSearchListener<XYNode, CostEdge<XYNode>>() {
List<CostEdge<XYNode>> way;
@Override
public void onExpandNode(XYNode node, List<CostEdge<XYNode>> way) {
if (this.way == null) {
this.way = way;
}
System.out.println("Expanding");
for (CostEdge<XYNode> costEdge : way) {
graphPane.lookup("#"+costEdge.getId()).getStyleClass().add("visited");
graphPane.lookup("#"+costEdge.getSource().getId()).getStyleClass().add("visited");
graphPane.lookup("#"+costEdge.getTarget().getId()).getStyleClass().add("visited");
System.out.println("Coloring-> EdgeID:"+costEdge.getId()+" From:"+costEdge.getSource().getId()+" To:"+costEdge.getTarget().getId());
}
try {
System.out.println("Sleeping");
Thread.sleep((long) (pathfindingSpeedSlider.getValue()*1000));
} catch (InterruptedException ex) {
//ToCatchOrNot
}
}
};
样本输出:
Algo: AStar
Expanding
Expanding
Coloring-> EdgeID:id20 From:id1 To:id2
Coloring-> EdgeID:id25 From:id1 To:id4
Coloring-> EdgeID:id45 From:id1 To:id9
Expanding
Coloring-> EdgeID:id21 From:id2 To:id3
Coloring-> EdgeID:id20 From:id1 To:id2
Coloring-> EdgeID:id25 From:id1 To:id4
Coloring-> EdgeID:id45 From:id1 To:id9
Expanding
Coloring-> EdgeID:id21 From:id2 To:id3
Coloring-> EdgeID:id20 From:id1 To:id2
Coloring-> EdgeID:id25 From:id1 To:id4
Coloring-> EdgeID:id45 From:id1 To:id9
Expanding
Coloring-> EdgeID:id21 From:id2 To:id3
Coloring-> EdgeID:id20 From:id1 To:id2
Coloring-> EdgeID:id46 From:id9 To:id5
Coloring-> EdgeID:id25 From:id1 To:id4
Coloring-> EdgeID:id45 From:id1 To:id9
Expanding
Coloring-> EdgeID:id21 From:id2 To:id3
Coloring-> EdgeID:id20 From:id1 To:id2
Coloring-> EdgeID:id46 From:id9 To:id5
Coloring-> EdgeID:id25 From:id1 To:id4
Coloring-> EdgeID:id28 From:id5 To:id6
Coloring-> EdgeID:id45 From:id1 To:id9
Expanding
Coloring-> EdgeID:id21 From:id2 To:id3
Coloring-> EdgeID:id20 From:id1 To:id2
Coloring-> EdgeID:id46 From:id9 To:id5
Coloring-> EdgeID:id25 From:id1 To:id4
Coloring-> EdgeID:id30 From:id6 To:id7
Coloring-> EdgeID:id28 From:id5 To:id6
Coloring-> EdgeID:id35 From:id6 To:id11
Coloring-> EdgeID:id45 From:id1 To:id9
getWay1
->id1/id9->id9/id5->id5/id6->id6/id7getWay2
Finish
【问题讨论】:
标签: java javafx javafx-2 listener javafx-8