1
我正在寫應用程序,測量在任務上花費的時間。我有TableTreeView包含項目及其任務的詳細信息。如何更新TreeTableView數據?
這是它的外觀:TableTreeViewImage
我想是讓duration`s列任務運行時更新其值。項目持續時間也應該更新。
這是我的模型:
public abstract class SimpleTask{
abstract Duration getDuration();
}
public class Task extends SimpleTask{
Duration duration;
@Override
public Duration getDuration(){
return duration;
}
public start(){
//update duration value every second;
}
}
public class Project extends SimpleTask{
List<Task> tasks;
@Override
public Duration getDuration(){
return tasks.stream()
.map(Task::getDuration)
.reduce(Duration.ZERO,Duration::plus);
}
我試圖綁定方法getDuration()持續時間列,但隨後TableTreeView需要刷新此列更新值。
durat.setCellValueFactory(new Callback<TreeTableColumn.CellDataFeatures<SimpleTask, Duration>, ObservableValue<Duration>>() {
@Override
public ObservableValue<Duration> call(TreeTableColumn.CellDataFeatures<GeneralTask, Duration> SimpleTaskDurationCellDataFeatures) {
return new SimpleObjectProperty<Duration>(SimpleTaskDurationCellDataFeatures.getValue().getValue().getDuration());
}
});
當任務運行時,如何讓duration列更新其值?