如何计算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;
}
};
答案 0 :(得分:1)
尝试这样的事情。获取模型,并使用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);
答案 1 :(得分:0)
如果您需要动态保持最新的总数,则需要覆盖TableModel以提供最后一行的总和,或者需要监听模型的更改并使用总和。
自定义您自己的TableModel还可以让您的摘要行无法使用,因此虽然这可能更有效,但它提供了更大的灵活性。