简体   繁体   English

JTable中值的总和与乘法

[英]Sum and multiplication of values in JTable

I can not view each value on the same line. 我无法在同一行上查看每个值。 It is displayed per column. 它按列显示。 Every dealer in the total column line should display the sum of all values. 总计列行中的每个经销商应显示所有值的总和。

I do not know how to display line by line. 我不知道如何逐行显示。

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

Override getValueAt() in your TableModel to return the correct value for cells in the TOTAL row and column. TableModel重写getValueAt()以为TOTAL行和列中的单元格返回正确的值。 The correct value may be calculated by invoking getValueAt() in a loop, as shown in your TableModelListener example. 如您的TableModelListener示例所示,可以通过循环调用getValueAt()来计算正确的值。 In this complete example , the value shown in each row of the second column depends on the value chosen in the third column of the same row. 在此完整示例中 ,第二列的每一行中显示的值取决于同一行第三列中选择的值。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM