Расчетное значение, переданное в качестве параметра в модель данных, не отображается в табличном представлении

У меня есть форма с 4 текстовыми полями, которые я пытаюсь отслеживать с помощью ObservableList с 5 столбцами. TableView имеет дополнительный столбец для хранения вычисляемого значения (5-й столбец в моем 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);
    }

// в обработчике действия кнопки «Добавить» у меня есть это:

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

person John    schedule 28.04.2013    source источник
comment
Упс... разобрался. Я исследовал другую проблему и нашел ответ на stackoverflow.com/questions/13518239/, и, просматривая свой код, я заметил, что у меня есть геттер с параметрами. Удалил параметры и БУМ! это сработало.   -  person John    schedule 28.04.2013


Ответы (1)


Упс... разобрался. Я исследовал другую проблему и нашел ответ на JavaFx - Как отобразить SimpleStringProperty значение в TableView, и, просматривая свой код, я заметил, что у меня есть геттер с параметрами. Удалил параметры и БУМ! это сработало.

person John    schedule 03.05.2013