我使用jtable显示从数据库mysql中检索到的数据,我需要获取第三列的总值,即表中的balance列 任何帮助将不胜感激
table_1 = new JTable();
DefaultTableModel model =(new DefaultTableModel(
new Object[][] {
},
new String[] {
"YEAR", "TERM", "BALANCE",
}
));
table_1.setModel(model);
table_1.getColumnModel().get-column(0).setPreferredWidth(100);
table_1.getColumnModel().getColumn(2).setPreferredWidth(107);
table_1.getColumnModel().getColumn(3).setPreferredWidth(130);
scrollPane_3.setViewportView(table_1);
btnSearch_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//database connection and retrieving data from database
while(rs.next()){
Vector<String> rowData = new Vector<>();
rowData.add(rs.getString(1));
rowData.add(rs.getString(2));
rowData.add(rs.getString(3));
// row++;
model.addRow(rowData);
}
}
}
答案 0 :(得分:2)
您可以使用方法getValueAt(row index , column index)
获取特定单元格的值。您可以按以下方式获得总和。
示例
int total=0;
for (int i = 0; i < model.getRowCount(); i++){
total +=Integer.parseInt( model.getValueAt(i, 2).toString() );// 3rd column . row column indexes are 0 based
}
答案 1 :(得分:0)
首先使用Object[]
表示记录,BigDecimal
表示金额。
Object[] rowData = new Object[] {
rs.getString(1),
rs.getString(2),
rs.getBigDecimal(3),
rs.getString(4)};
model.addRow(rowData);
稍后添加可以完成:
BigDecimal sum = BigDecimal.ZERO;
DefaultTableModel model = (DefaultTableModel) table_1.getModel();
for (int row = 0; row < model.getRowCount(); ++row) {
BigDecimal x = (BogDecimal) model.Value(row, 3 - 1);
if (x != null) {
sum = x.add(sum);
}
}
return sum;
在模型中使用正确类型的原因是每种类型/列可以进行可视化格式化。