簡體   English   中英

JTable中值的總和與乘法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM