JavaFX Como obter todos os valores e soma de coluna específica de Table View por botão?

Jaroslaw:

Eu tenho um problema com a adição de funcionalidades ao meu programa. Estou usando JavaFX e Table View. Eu não sei como eu pode implementar uma bruxa método irá obter dados de coluna específica.

I tentar implementar solução deste disse: JavaFX Como obter todos os valores de uma coluna de TableView?

Mas eu não entendo exatamente como eu deveria enviar classe TableColumn inicializado para o método totalPaidSaving

E: Como selecionado TableCell em JavaFX TableView

Eu também achei um par de soluções diferentes usando getSelectionModel().getSelectedCells(), mas neste caso eu preciso usar o botão e algum tipo de bruxa código irá obter dados de coluna específica.

Fragmento de classe MainControl. Local onde o método é chamado:

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

Um fragmento da configuração da minha TableView também na classe 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);
}

Um fragmento de classe Operação:

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

Eu sei que o uso de String em vez da dupla é ruim, mas por agora eu gostaria de resolvê-lo desta forma.

Ligação de visualização de me aplicação e exemplo de coluna eu quero soma. https://zapodaj.net/d8fc7ece3f629.jpg.html

Meu objetivo é, depois pressione o botão "Adicionar" aplicação de botão me mostra a soma de todas as linhas de poupança de salvar coluna no rótulo específico. Resto do aplicativo está funcionando.

Jmith:

Neste maneiras que você pode calcular os valores de uma coluna. você pode obter o valor da célula pelo índice da coluna. você tem que usar contentTable.getColumns().get(7).getCellObservableValue(i).getValue()obter o valor da célula de que a poupança de coluna.

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

Acho que você gosta

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