我们如何在Jtable中添加序列号(S.No.),每次删除表的数据时都会更新?

时间:2018-03-15 08:47:28

标签: java swing jtable

我们如何在Jtable中添加包含序列号(S.No.)的行,每次删除表的数据时都会更新? 例如。: 我有一个jtable包含数据库中的数据

Name Age Class
ram  14  9
hari 15  9
rama 15  10

我希望它是这样的:

S.No. Name Age Class
1     Ram  14   9
2     hari 15   9
3     rama 15   10

如果我删除了hari的数据,那么这个表应该是这样的:

S.No. Name Age Class
1     Ram  14   9
2     rama 15   10

3 个答案:

答案 0 :(得分:1)

此代码假设您维护所有学生的列表,并且班级中的任何地方都可以访问该表以及模型。

public void stuff() {
    deleteButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            list.remove(table.getSelectedRow());
            removeRowsFromTable();
        }
    });

}

void removeRowsFromTable() throws Exception {
    for (int i = table.getRowCount() - 1; i >= 0; i--) {
        model.removeRow(i);
    }
    fillTable();
}

void fillTable() {
    for (int i = 0; i < list.size(); i++) {
        Student s = list.get(i);
        Object[] newRow = new Object[] {i, s.getName(),s.getAge(), s.getClass()};
        model.addRow(newRow);
    }
}

答案 1 :(得分:0)

做以下事情:

  • 将代码移至填写表格的方法
  • ActionPerformed侦听器添加到删除按钮
  • ActionPerformed调用的实现中,该方法将再次使用新条目刷新表。

希望这能解决你的问题。

答案 2 :(得分:0)

 jTableModel.removeRow(rowIndex);
 for(int i = rowIndex; i < jTableModel.getRowCount(); i++){
     int val = (int) jTableModel.getValueAt(i, 0);
     jTableModel.setValueAt(--val, i, 0);
 }