我对JavaFx TableView
public class CuePreWaitCallback implements Callback<TableColumn.CellDataFeatures<cObj,String>, ObservableValue<String>> {
@Override
public ObservableValue<String> call(final CellDataFeatures<cObj, String> param) {
final Timeline preWait = param.getValue().getCTimeline().getPreWait();
return new StringBinding() {
{
super.bind(param.getValue().getCTimeline().getPreWait().playhead());
super.bind(param.getValue().getCTimeline().getPreWait().waitTime());
}
@Override
protected String computeValue() {
System.out.println("Value Called---------------------------------------------->");
return preWait.getAbsoluteDuration().subtract(preWait.getPlayhead()).toString();
}
};
}
}
请注意中间的巨型印刷声明。突然之间,GUI在值发生变化时停止更新。请注意,值变化非常快(如果重要)。大概每3-5毫秒(它显示一个时间)。
关于Timeline
类:getAbsoluteDuration()
方法返回TimeElapsed
对象,该对象减去preWait.getPlayhead()
TimeElapsed
个对象以创建新的TimeElapsed
他们差异的对象。然后调用TimeElapsed
toString()
方法。