java - 删除表中的行无法正常工作

标签 java swing jtable

我试图在单击按钮时删除表内的数据行。我当前的代码会在按 1-3 次后删除行内容,但我希望它能够清除内容,然后一次按一次即可添加新内容。

这是我正在使用的代码...

private void newTasksActionPerformed(java.awt.event.ActionEvent evt) {                                         
    int sizeOfLL = taskLL.size();
    DefaultTableModel textArea = (DefaultTableModel)jTable1.getModel();

    int r = textArea.getRowCount();

    for(int i = 0; i < r; i++) {
        textArea.removeRow(i);   
    }

    for (int i =0; i < sizeOfLL; i++) {
        textArea.addRow(new Object[]{taskLL.get(i).index, taskLL.get(i).taskName, taskLL.get(i).taskDes, taskLL.get(i).taskStatus});
    }       
}     

jTable中显示了5行数据。再次按下按钮后,两行数据被删除。如果我按下按钮,第二次就会留下 1 行数据。第三次按下该按钮,所有行都会被删除,下一次按下该按钮将插入 5 行数据。理想情况下,我希望此按钮始终清除行字段,然后添加要插入的数据。让每个按钮按下都显示新数据,因为我有三个按钮,它们具有完全相同的代码,但在 jTable 中输入不同的数据。

最佳答案

您应该尝试从 r-1 向后计数到 0。问题是第一行被删除,将第二行移动到该索引。当您增加 i 时,您将索引超过该行。

...
for (int i = r-1 ; i >= 0 ; i--) {
...

关于java - 删除表中的行无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30407203/

相关文章:

java - java中的SQL返回错误的数据

java - REST Assured - 如何仅在响应包含 HTTP 错误时记录请求

java - java中如何比较字符串并将结果保存到字符串数组中?

java - java多个setText之间的延迟

java - 在 JTable 的单列上显示 MySQL 数据库中的图像

java - 尝试将用户输入的短语打印成 V 形

java - 从菜单转发操作到父类

java - 为什么 JOptionPane.showInputDialog 不需要父组件参数,但 JOptionPane.showConfirmDialog 需要?

java - 如何使用java将Vector中的数据放入JTable中

java - 理解swing的JTable和JTree的renderers机制的难点