2013-12-19 3 views
1

Как рассчитать сумму столбца цены в jTable и поместить сумму из них в конце 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

Имя переменной 'model' запутывается, поскольку данные не являются моделью. Я бы выбрал другое имя –

ответ

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 также позволит вам сделать сводную строку неизменяемой, поэтому, хотя это может быть больше работы, она обеспечивает гораздо большую гибкость.

Смежные вопросы