Вычислите сумму столбца и поместите ее в эту таблицу
Как я могу рассчитать сумму столбца цены в 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;
}
};
2 ответа
Попробуйте что-то вроде этого. Получить модель и использовать 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);
Если вам нужно, чтобы итоговое значение динамически поддерживалось в актуальном состоянии, то вам нужно либо переопределить свой TableModel, чтобы предоставить сумму для последней строки, либо потребуется прослушивать изменения модели и обновить последнюю строку с суммой.
Настройка вашей собственной TableModel также позволит вам сделать вашу итоговую строку недоступной для редактирования, так что, хотя это может быть больше работы, она обеспечивает гораздо большую гибкость.