2013-12-19 36 views
1

如何计算jTable中的价格总和列并将它们的总和放在jTable的末尾。你能给我一个示例代码吗?计算列的总和并将其放在该表格中

public class IncomeReport extends JFrame { 

private AccountFacade service = new AccountFacade(); 

void init() { 

    String[] columnNames = {"مبلغ", "محل درآمد ", "منبع"}; 

    List list = service.incomeReportFacade(); 

    Object[][] model = new Object[list.size()][]; 
    for (int i = 0; i < list.size(); i++) { 
     model[i] = (Object[]) list.get(i); 
    } 

    JTable table = new JTable(model, columnNames) { 


     DefaultTableCellRenderer renderRight = new DefaultTableCellRenderer(); 

     { 
      // initializer block 
      renderRight.setHorizontalAlignment(SwingConstants.RIGHT); 
     } 

     @Override 
     public TableCellRenderer getCellRenderer(int arg0, int arg1) { 
      return renderRight; 
     } 

    }; 
+3

我想你应该在这里发布你的努力代码,然后要求样本或更正。 – c0d3Junk13

+0

这是我的代码 – user3119884

+0

由于数据不是模型,因此变量名称“模型”很混乱。我会选择另一个名称 –

回答

0

尝试类似这样的东西。获取模型,并使用DefaultTableModel#getValueAt()方法。

Jtable table = new Jtable(); 
DefaultTableModel model = (DefaultTableModel)table.getModel(); 

double total = 0; 
int column = 2; // example 

for (int i = 0; i < model.getRowCount(); i++){ 
    total += model.getValueAt(i, column);  // getValueAt(row, column) 
} 

Object[] row = {"", "", total}; 
model.addRow(row); 
0

如果你需要一个总的是动态不断更新,那么你要么需要重写你的TableModel为最后一行提供的总和,或将需要更改监听器模型和更新最后一行与总和。

自定义您自己的TableModel还可以让您使您的汇总行不可编辑,因此尽管这可能会更多工作,但它提供了更多的灵活性。

相关问题