我对 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()
方法。