可以自已写一个TableModel, 最后一行的值为这一列相加就可以。

解决方案 »

  1.   

    那就是每个不同查询结果的显示都要写不同的model了
    在java里只有这一种方法吗??
      

  2.   

    自己重载public Object getValueAt(int nRow, int nCol)方法了
    这个不难的!!
      

  3.   

    给一段tableModel的例子,你看看吧。public class MyTableModel extends AbstractTableModel {
      private final String[] names = {
              "商品编号","商品名称","规格","单位",
              "数量","单价","总价","备注"
      };
      private final Object[][] data = {  //10row  8column
              {"","","","","","","",""},
              {"","","","","","","",""},
              {"","","","","","","",""},
              {"","","","","","","",""},
              {"","","","","","","",""},
              {"","","","","","","",""},
              {"","","","","","","",""},
              {"","","","","","","",""},
              {"","","","","","","",""},
              {"","","","","","","",""}
      };  public MyTableModel() {
      }
      public int getRowCount() {
        return data.length;
      }
      public int getColumnCount() {
        return names.length;
      }
      public Object getValueAt(int rowIndex, int columnIndex) {
        return data[rowIndex][columnIndex];
        //throw new java.lang.UnsupportedOperationException("Method getValueAt() not yet implemented.");
      }
      public String getColumnName(int column){
        return names[column];
      }
      public boolean isCellEditable(int row,int col){
        switch (col){
          case 3 : return true;
          case 4 : return true;
          case 5 : return true;
          case 7 : return true;
         default : return false;
        }
      }
      public void setValueAt(Object aValue,int row,int col){
        data[row][col] = aValue;
      }
      public Object[][] getData(){
        return data;
      }
    }