我有一个包含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
));
答案 0 :(得分:1)
哎呀......弄清楚了。我正在研究另一个问题并在JavaFx - How to display SimpleStringProperty value in TableView上找到答案,并且在查看我的代码时,我注意到我有带参数的getter。删除参数和BOOM!它奏效了。