JavaFX ¿Cómo obtener todos los valores y suma de la columna específica de la Tabla Ver por botón?

Jaroslaw:

Tengo un problema con la adición de la funcionalidad de mi programa. Estoy usando JavaFX y la vista de tabla. No sé cómo puedo poner en práctica un método de bruja recibirá los datos de la columna específica.

Trato de poner en práctica la solución de este dijo: JavaFX ¿Cómo obtener todos los valores de una columna de TableView?

Pero no entiendo exactamente cómo debería enviar clase TableColumn inicializado con el método totalPaidSaving

Y: ¿Cómo ser seleccionado TableCell en JavaFX TableView

También me encontré con un par de diferentes soluciones usando getSelectionModel().getSelectedCells()pero en este caso tengo que utilice el botón y una especie de bruja código será obtener datos de columna específica.

Fragmento de la clase MainControl. Lugar en el que se llama al método:

addButton.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {
        Operation operation = new Operation();
        operation.addRecord(dateTextField, distanceTextField, lpgAmountTextField, lpgPriceTextField,
                    petrolAmountTextField, petrolPriceTextField, paidLabel, savingLabel, gasEfficiencyLabel,
                    contentTable, totalSavingsLabel);

        operation.totalPaidSaving(contentTable, totalSavingsLabel);
    }
});

Un fragmento de la configuración de mi TableView también en la clase MainControl.

@SuppressWarnings("unchecked")
public void configurateTable() {

    TableColumn<GasRecords, String> savingColumn = new TableColumn<GasRecords, String>(SAVING_COLUMN);
    savingColumn.setCellValueFactory(new PropertyValueFactory<>("saving"));

    contentTable.getColumns().addAll(dateColumn, distanceColumn, lpgAmountColumn, lpgPriceColumn, petAmountColumn,
            petPriceColumn, paidColumn, savingColumn, gasEfficiencyColumn);
}

Un fragmento de la clase de la operación:

public void totalPaidSaving(TableView<GasRecords> cT, Label tSL) {

    String totalSavingValue = "0";

    //the code that calculates the sum of the values ​​of a particular column

    tSL.setText(String.format("%.2f zł", totalSavingValue));
}

Yo sé que el uso de cadenas en lugar de la doble es malo, pero por ahora me gustaría resolverlo en esta forma.

Enlace de visualización de mi solicitud y ejemplo de la columna i desea sumar. https://zapodaj.net/d8fc7ece3f629.jpg.html

Mi objetivo es, después de pulsar el botón "Añadir" de aplicación del botón me muestra la suma de todas las filas de ahorro de ahorro de la columna en la etiqueta específica. Resto de la aplicación está funcionando.

Jmith:

En esta manera se puede calcular los valores de una columna. se puede obtener valor de la celda por el índice de la columna. usted tiene que utilizar contentTable.getColumns().get(7).getCellObservableValue(i).getValue()obtener el valor de la celda de que el ahorro de las columnas.

int totalSavingValue=0;
       for (int i= 0;i<tblDispatchHistory.getItems().size();i++){
            total = total+Integer.valueOf(String.valueOf(contentTable.getColumns().get(7).getCellObservableValue(i).getValue()));
           }
 System.out.println(totalSavingValue);
 tSL.setText(totalSavingValue);

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=219510&siteId=1
Recomendado
Clasificación