我有3行tablemodel.each行conatining 9列(o-8)。我想更新每行的最後一列...但現在我只能更新第1行最後一列..請幫助...'我如何更新表模型多行列?
` SAVE=new JButton("SAVE");
SAVE.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
String Status=null ;
DbUtility ViewAbsenties=new DbUtility();
ViewAbsenties. loadDriver();
ViewAbsenties.connect();
TableModel tm;
tm = table3.getModel();
int i = table3.getRowCount();
System.out.println("row count"+i);
try{
while(i!=0){
Status =(String) tm.getValueAt(0,8);
String Employeeid = (String) tm.getValueAt(i,0);
System.out.println("Status: " + Status);
System.out.println("Employeeid: " + Employeeid);
ViewAbsenties.executeUpdateQuery2(Status,Employeeid);
System.out.println("i"+i);
i=i-1;
}}
catch (Exception e5) {
}
});
它工作嗎?因爲在我看來,在一個循環週期中,你有'i ++'和'i = i-1',這使得'i'變量對於循環條件不變。它看起來像一個無限循環。我想你的問題的解決方案在於,因此刪除'i ++'語句,將'tm.getValueAt(0,0)'修復爲'tm.getValueAt(i,0)',你應該沒問題。 – Gaim
tm.getValueAt(i,0);我試過了,但現在我沒有得到任何結果 – learner
你在循環的第一行仍然有'tm.getValueAt(0,8)'。我想你想要獨立處理每個表格行。此外,我只是注意到你初始化'int i = table3.getRowCount();'並且當你調用'tm.getValueAt(i,0)'的時候。我不知道它是如何做到的,但是在Java中,數組,模型等通常從'0'索引到'length - 1',但是您將它們從'1'調用到'length'。所以我建議你修正以下問題:'int i = table3.getRowCount() - 1;'和while(i> = 0)'。順便說一句,我認爲這是'for'循環的好用例,而不是'while'。這將更具可讀性 – Gaim