У меня есть форма, которая имеет 4 TextFields, которые я пытаюсь отслеживать с ObservableList, который имеет 5 столбцов. TableView имеет дополнительный столбец для хранения вычисленного значения (пятый столбец в моем ObservableList).Вычисляемое значение, переданное как параметр модели данных, не отображающийся в виде таблицы
Данные сбрасываются штрафом с 4 текстовых полей, но вычисленный столбец выходит пустым. Я предполагаю, что это проблема с моими геттерами и сеттерами, потому что значение вычисляется до того, как передать его в мою модель данных. И я просто протестировал модель данных и получаю значение (переданное как параметр).
Чтобы не ставить посторонний код здесь, я думаю, что это соответствующие части:
// Это (часть) моя модель данных
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
// цена * количество = rowPrice, то расчетное значение, которое не появляется позже
// геттер & сеттеров для количества (работы, это текстовое поле в моей форме)
public SimpleIntegerProperty getQuantity() {
return quantity;
}
public void setQuantity(Integer quant) {
quantity.set(quant);
}
// геттер & сеттер для rowPrice (не работает, рассчитывается, см ниже)
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
));
Ooops ... понял, понял. Я изучал еще одну проблему и нашел ответ на http://stackoverflow.com/questions/13518239/javafx-how-to-display-simplestringproperty-value-in-tableview и, пройдя свой код, заметил, что у меня есть геттер с параметрами. Удалены параметры и BOOM! это сработало. – John