[英]how to delete all rows in jtable?
我有一個問題要刪除表中的所有行,我有一個具有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);
}
注意:當所有控件都在同一示例中時,我在此示例應用程序中使用兩個面板,這一切正常,如果我在第二個面板中設置表格,則拋出上述異常,任何想法如何解決此問題
試試這個代碼。
DefaultTableModel dm = (DefaultTableModel)table.getModel();
dm.getDataVector().removeAllElements();
您看到的異常來自Swing線程(AWT-EventQueue-0)。 發生異常是因為JTable在其他線程上修改DefaultTableModel的同時繪制了自己(在Swing線程上)。
不要那樣做! 對表模型的所有更改都必須在Swing線程上進行。
使用EventQueue.invokeLater(new Runnable() {...});
或類似的東西。
這是我的方法:
DefaultTableModel model=(DefaultTableModel)table.getModel();
int rc= model.getRowCount();
for(int i = 0;i<rc;i++){
model.removeRow(0);
}
我用這個代碼
dtm_vendor = new DefaultTableModel();
jTable_vendor.setModel(dtm_vendor);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.