计算值作为参数传递给未在tableview上显示的数据模型

时间:2013-04-28 02:43:00

标签: javafx tableview datamodel observablelist

我有一个包含4个TextFields的表单,我试图用一个包含5列的ObservableList跟踪它。 TableView有一个额外的列来保存计算值(我的ObservableList中的第5列)。

数据从4个TextFields转储得很好,但计算出的列是空白的。我认为这是我的getter和setter的一个问题,因为在我将它传递给我的数据模型之前计算了值,而我刚刚测试了数据模型,它正在获取值(作为参数传递)。

为了不在这里放置无关代码,我认为这些是相关部分:

//这是(我的数据模型的一部分)

public static class ItemSale {
   private ItemSale (Double barC, String itemm, Double pricee, 
            Integer quant, Double totsP) {
        this.barCode = new SimpleDoubleProperty(barC);
        this.item = new SimpleStringProperty(itemm);
        this.price = new SimpleDoubleProperty(pricee);
        this.quantity = new SimpleIntegerProperty(quant);
        this.rowPrice = new SimpleDoubleProperty(totsP);

        System.out.println(totsP); // this (also) prints the correct value to the screen

// price * quantity = rowPrice,以后不会显示的计算值

// getter&数量的设定者(工作,是我的形式的文本字段)

    public SimpleIntegerProperty getQuantity() {
        return quantity;
    }
    public void setQuantity(Integer quant) {
        quantity.set(quant);
    }

// getter& rowPrice的setter(不起作用,计算,见下文)

    public SimpleDoubleProperty getRowPrice(Double totsP) {
        return rowPrice;
    }
    public void setRowPrice(Double totsP) {
        rowPrice.set(totsP);
    }

//在Add按钮动作处理程序中,我有:

            Double rowPP;
            rowPP = qua * pr; //qua = variable for quantity, pr = variable for price
            System.out.println(rowPP); //prints to screen fine

            data.add(new ItemSale(
                    bcode,
                    item.getText(),
                    pr,
                    qua,
                    rowPP
                    ));

1 个答案:

答案 0 :(得分:1)

哎呀......弄清楚了。我正在研究另一个问题并在JavaFx - How to display SimpleStringProperty value in TableView上找到答案,并且在查看我的代码时,我注意到我有带参数的getter。删除参数和BOOM!它奏效了。