我有一个表格列,我通过Scene Builder添加,并且使用java代码我可以编辑它
colSellingPrice.setCellFactory(TextFieldTableCell.<Sale, Float>forTableColumn(new FloatStringConverter()));
问题是在更新此表格单元格中的值时,进行了大量计算和许多插入和取出,这需要时间来完成。虽然我决定将更新逻辑放在Task
中,但我还想在逻辑发生时在tablecell UI中显示进度指示器。
这是我到目前为止所拥有的
colSellingPrice.setOnEditCommit(new EventHandler<TableColumn.CellEditEvent<Sale, Float>>() {
@Override
public void handle(TableColumn.CellEditEvent<Sale, Float> t) {
Task task = new Task<Void>(){
private SaleTransaction st;
@Override
protected Void call() throws Exception {
Sale s = t.getRowValue();
// Logic, logic , logic
return null;
}
@Override
protected void succeeded() {
System.out.println("Price Updated.");
}
};
executor.submit(task);
}
});