0

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

数据从 4 个文本字段中很好地转储,但计算的列显示为空白。我认为这是我的 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,计算后不显示的值

// 数量的获取器和设置器(有效,是我表单中的文本字段)

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

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

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

// 在添加按钮操作处理程序中,我有这个:

            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
                    ));
4

1 回答 1

1

哎呀……想通了。我正在研究另一个问题,并在JavaFx - How to display SimpleStringProperty value in TableView上找到了答案,并且在浏览我的代码时,我注意到我有带参数的 getter。删除了参数和 BOOM!有效。

于 2013-05-03T15:30:19.990 回答