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