Swing清空jtable中的数据

如何正确的清空jtable中的数据,我想你也会被api误导,api虽然提供了 removeRow方法 然而用起来却很恶心。。。 错误方法: 使用

tableModel.removeRow( rowindex );
你会经常得到以下错误:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 6 >= 1
     at java.util.Vector.elementAt(Vector.java:474)
     at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:648) 
    at javax.swing.JTable.getValueAt(JTable.java:2717)     
        at javax.swing.JTable.prepareRenderer(JTable.java:5706)
tableModel.removeRow( rowindex ); 你会经常得到以下错误: Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 6 >= 1 at java.util.Vector.elementAt(Vector.java:474) at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:648) at javax.swing.JTable.getValueAt(JTable.java:2717) at javax.swing.JTable.prepareRenderer(JTable.java:5706)

原因:使用该方法删除表格中所有数据,执行速度非常快。 而每删除一行,Swing就会去更新一次UI,这样更新和删除操作就不同步。 努力了很久也无法成功。 =================================================== 简单而有效的方法:

tablemodel.setRowCount( 0 );
tablemodel.setRowCount( 0 );
直接将总行数,设置为0.搞定收工。
如何正确的清空jtable中的数据,我想你也会被api误导,api虽然提供了 removeRow方法 然而用起来却很恶心。。。 错误方法: 使用 tableModel.removeRow( rowindex ); 你会经常得到以下错误: Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 6 >= 1 at java.util.Vector.elementAt(Vector.java:474) at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:648) at javax.swing.JTable.getValueAt(JTable.java:2717) at javax.swing.JTable.prepareRenderer(JTable.java:5706) 原因:使用该方法删除表格中所有数据,执行速度非常快。 而每删除一行,Swing就会去更新一次UI,这样更新和删除操作就不同步。 努力了很久也无法成功。 =================================================== 简单而有效的方法: tablemodel.setRowCount( 0 ); 直接将总行数,设置为0.搞定收工。
如何正确的清空jtable中的数据,我想你也会被api误导,api虽然提供了 removeRow方法 然而用起来却很恶心。。。 错误方法: 使用 tableModel.removeRow( rowindex ); 你会经常得到以下错误: Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 6 >= 1 at java.util.Vector.elementAt(Vector.java:474) at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:648) at javax.swing.JTable.getValueAt(JTable.java:2717) at javax.swing.JTable.prepareRenderer(JTable.java:5706) 原因:使用该方法删除表格中所有数据,执行速度非常快。 而每删除一行,Swing就会去更新一次UI,这样更新和删除操作就不同步。 努力了很久也无法成功。 =================================================== 简单而有效的方法: tablemodel.setRowCount( 0 ); 直接将总行数,设置为0.搞定收工。
经验分享 程序员 微信小程序 职场和发展