[英]Sum and multiplication of values in JTable
我无法在同一行上查看每个值。 它按列显示。 总计列行中的每个经销商应显示所有值的总和。
我不知道如何逐行显示。
String[]entete= {"Revendeur/Montant","5000","3000","1500","800","600","500","400","REMISE","TOTAL","CREANCE"};
Object [][]donnees= {{"Patrick",0,0,0,0,0,0,0,0,0,""},
{"Marie",0,0,0,0,0,0,0,0,0,""},
{"Christian",0,0,0,0,0,0,0,0,0,""},
{"Fabian",0,0,0,0,0,0,0,0,0,""},
{"TOTAL",0,0,0,0,0,0,0,0,0,""}};
private void setTableModelListener() {
tableModelListener = new TableModelListener() {
public void tableChanged(TableModelEvent e) {
int lastRow = model.getRowCount()-1 ;
int lastColumn = model.getColumnCount()-2 ; //Colonne total
int rowCount = model.getRowCount();
if (e.getType() == TableModelEvent.UPDATE && e.getColumn() < lastColumn && e.getFirstRow() < lastRow && e.getLastRow() < lastRow ) {
int row = rowCount;
int value = 0;// on initialise le résultat
int value1 = 0;
int value2 = 0;
int value3 = 0;
int value4 = 0;
int value5 = 0;
int value6 = 0;
for (int i = 0; i < row; i++) {
value += 5000*(int) model.getValueAt(i, 1); // cumul montant
value1 += 3000*(int) model.getValueAt(i, 2);
value2 += 1500*(int) model.getValueAt(i, 3);
value3 += 800*(int) model.getValueAt(i, 4);
value4 += 600*(int) model.getValueAt(i, 5);
value5 += 500*(int) model.getValueAt(i, 6);
value6 += 400*(int) model.getValueAt(i, 7);
}
model.setValueAt(value, 0, lastColumn);
model.setValueAt(value1, 1, lastColumn);
}
}
};
}
在TableModel
重写getValueAt()
以为TOTAL
行和列中的单元格返回正确的值。 如您的TableModelListener
示例所示,可以通过循环调用getValueAt()
来计算正确的值。 在此完整示例中 ,第二列的每一行中显示的值取决于同一行第三列中选择的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.