我试图从我的窗格中逐个删除所有节点,这样我就可以看到每一行都被删除了。为此,我创建了一个新线程并使用了任务类并将方法 delWalls() 包装在平台中。运行后()。然后我使用 Thread.sleep 认为它会减慢循环速度所以我可以看到 UI 在每一行被删除时更新但是会发生什么情况是整个 UI 冻结然后在循环完成后所有节点都消失了?有没有办法解决这个......谢谢
*所有节点都是线顺便说一句
//loop calls delWalls() 1458 times to delete all 1458 nodes sequentailly
Task task = new Task<Void>() {
@Override
public Void call() {
Platform.runLater(() -> {
try {
for (int i = 0; i <= 1458 - 1; i++) {
Thread.sleep(2);
delWalls();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
});
return null;
}
};
new Thread(task).start();
}
//delWalls方法每调用一次删除一个节点。
public void delWalls() throws InterruptedException {
pane.getChildren().remove(0);
}
回首忆惘然
相关分类