我在java中完成了这个,我总结了价格列/行的值。但我想知道如何在JavaFX中执行此操作。
我想总结第1列中的所有内容并将其显示在inputField
中,我用它在java中执行此操作但是如何在JavaFX中执行此操作?
tableview.getValueAt(i, 1).toString();
以下是我要做的事情:
int sum = 0;
for (int i = 0; i < tableview.getItems().size(); i++) {
sum = sum + Integer.parseInt(tableview.getValueAt(i, 1).toString());
}
sumTextField.setText(String.valueOf(sum));
答案 0 :(得分:2)
如果你真的有一个TableView<Integer>
,这似乎就是你在评论中所说的那样,你就可以做到
TableView<Integer> table = ... ;
int total = 0 ;
for (Integer value : table.getItems()) {
total = total + value;
}
或使用Java 8方法:
int total = table.getItems().stream().summingInt(Integer::intValue);
如果你有一个更标准的设置与你的表的实际模型类,那么你需要遍历项目列表并在每个项目上调用适当的get方法,然后将结果添加到总计。例如。
之类的东西TableView<Item> table = ...;
int total = 0 ;
for (Item item : table.getItems()) {
total = total + item.getPrice();
}
或者,再次使用Java 8风格
int total = table.getItems().stream().summingInt(Item::getPrice);
这两个假设您有一个Item
类,其中getPrice()
方法,并且相关列显示每个项目的price
属性。
答案 1 :(得分:0)
public void totalCalculation (){
double TotalPrice = 0.0;
TotalPrice = Yourtable.getItems().stream().map(
(item) -> item.getMontant()).reduce(TotalPrice, (accumulator, _item) -> accumulator + _item);
TexfieldTotal.setText(String.valueOf(TotalPrice));
}
//getMontant is the getter of your column