我需要在javafx上更新列表视图,我尝试了两种解决方案:
1。
Task task = new Task<Void>() {
@Override public Void call() {
while (true){
visitsDataList = reqController.getVisits(userBean);
Platform.runLater(() -> {
observableList.clear();
observableList.setall(visitsDataList);
listVisits.setItems(observableList);
listVisits.setCellFactory(List -> new CustomVisitRow());
});
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
2。
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
visitsDataList = reqController.getVisits(userBean);
Platform.runLater(() -> {
observableList.clear();
observableList.setall(visitsDataList);
listVisits.setItems(observableList);
listVisits.setCellFactory(List -> new CustomVisitRow());});
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();}}}}).start();
但是我不相信,因为我相信创建了太多Runnable。还有其他解决方案吗? 我的哪种解决方案是最好的?