У меня есть 3 строки в таблице tablemodel.each, состоящей из 9 столбцов (o-8) .i хочу обновить последний столбец каждой строки ... но теперь я могу обновить только 1-й ряд последних столбцов..pls help..`Как я могу обновить несколько столбцов столбцов таблицы?
` 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) 'to' 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