我有一个包含 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
));