表格单元格中的进度指示器

时间:2016-09-04 17:53:57

标签: javafx-8

我有一个表格列,我通过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);
        }
    });

0 个答案:

没有答案