【问题标题】:how to delete all rows in jtable?如何删除jtable中的所有行?
【发布时间】:2012-06-18 05:18:18
【问题描述】:

我在删除表中的所有行时遇到一个问题,我有一个具有 jtable 的 Jpanel,当我选择行时,它将显示相应的行值,当我单击同一面板上的另一个按钮时意味着它,将重新加载表,这是问题,我得到了异常

Exception in thread "AWT-EventQueue-0"

    java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
        at java.util.Vector.elementAt(Unknown Source)
        at javax.swing.table.DefaultTableModel.getValueAt(Unknown Source)
        at javax.swing.JTable.getValueAt(Unknown Source)
        at Testsample$16.valueChanged(Testsample.java:1516) 

我几乎使用所有方法来删除表中的行 现在我用这个方法

while (table.getRowCount() > 0) {
                    ((DefaultTableModel) table.getModel()).removeRow(0);
                } 

注意:我在这个示例应用程序中使用了两个面板,当所有控件都相同时,一切正常,如果我在第二个面板中设置表意味着,它会抛出异常,知道如何解决这个问题 em>

【问题讨论】:

    标签: java swing jtable awt jpanel


    【解决方案1】:

    您看到的异常来自 Swing 线程 (AWT-EventQueue-0)。发生异常是因为 JTable 正在绘制自身(在 Swing 线程上),同时您正在修改其他线程上的 DefaultTableModel。

    不要那样做!对表模型的所有更改都必须发生在 Swing Thread。

    Last word in Swing Threads

    使用EventQueue.invokeLater(new Runnable() {...}); 或类似的东西。

    【讨论】:

      【解决方案2】:

      试试这个代码..

      DefaultTableModel dm = (DefaultTableModel)table.getModel();
      dm.getDataVector().removeAllElements();
      

      【讨论】:

      • 这仍然会导致他报告的异常,除非该代码在 Swing 事件线程上执行。
      【解决方案3】:

      这是我的方法:

      DefaultTableModel model=(DefaultTableModel)table.getModel();
                  int rc= model.getRowCount();
                  for(int i = 0;i<rc;i++){
                      model.removeRow(0);
                  }   
      

      【讨论】:

        【解决方案4】:

        我用这个代码

        dtm_vendor = new DefaultTableModel();
        jTable_vendor.setModel(dtm_vendor);
        

        【讨论】:

        • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您正在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要用解释性的 cmets 挤满你的代码,这会降低代码和解释的可读性!
        猜你喜欢
        • 2011-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-28
        • 2011-12-22
        • 2013-03-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多