我在向我的程序添加功能时遇到问题。我正在使用 JavaFX 和 TableView 。我不知道如何实现从特定列获取数据的方法。
我尝试通过以下方式实现解决方案: JavaFX How to get all values of one column from TableView?
但我不明白我应该如何将初始化的 TableColumn 类发送到方法 totalPaidSaving
并且:How to get selected TableCell in JavaFX TableView
我还使用 getSelectionModel().getSelectedCells()
找到了几个不同的解决方案,但在这种情况下,我需要使用按钮,某种代码女巫将从特定列获取数据。
MainControl 类的片段。调用方法的地方:
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);
}
});
我的 TableView 的配置片段也在 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);
}
操作类的片段:
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));
}
我知道使用 String 而不是 double 是不好的,但现在我想以这种形式解决它。
我的应用程序可视化链接和我想总结的列示例。 https://zapodaj.net/d8fc7ece3f629.jpg.html
我的目标是,在按下“添加”按钮后,应用程序会显示特定标签中保存列的所有保存行的总和。应用程序的其余部分正在运行。
最佳答案
通过这种方式,您可以计算列的值。您可以通过列的索引获取单元格值。您必须使用 contentTable.getColumns().get(7).getCellObservableValue(i).getValue()
获取该列 Savings 的单元格值。
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);
关于JavaFX 如何通过按钮从 TableView 中获取特定列的所有值和总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55892225/