이 질문을 여러 번 검색하여 본 적이 있지만 해결 방법이 없습니다.AbstractTableModel에 적절한 데이터가 있지만 fireTablDataChanged에서 업데이트되지 않습니다
저는 이라는 확장 된 AbstractTableModel
을 가지고 있습니다. 코드가 그대로입니다.
import InvAcntItem.Account;
import java.util.LinkedList;
import javax.swing.table.AbstractTableModel;
public class AccountTableModel extends AbstractTableModel
{
LinkedList<Account> dataList;
private String[] columnNames = {"Username", "Password"};
public AccountTableModel()
{
dataList = new LinkedList<>();
}
public void setNewAccounts(LinkedList<Account> inAccs)
{
System.out.println("Syncing local account");
LinkedList<Account> newList = new LinkedList<>();
for(int i = 0; i < inAccs.size(); i++)
newList.add(Account.getDeepCopy(inAccs.get(i)));
System.out.println("done");
this.dataList = newList;
System.out.println("set");
this.fireTableDataChanged();
System.out.println("set");
}
@Override
public int getRowCount()
{
return dataList.size();
}
@Override
public int getColumnCount()
{
return columnNames.length;
}
@Override
public Object getValueAt(int col, int row)
{
System.out.println("GetValueAt!");
Object retObj = null;
Account rowAcc = dataList.get(row);
switch(col)
{
case 0:
{
retObj = rowAcc.user;
}
break;
case 1:
{
retObj = rowAcc.pass;
}
break;
}
return retObj;
}
}
println
문이 모두 실행되지만 UI는 업데이트되지 않습니다. 나는 지금까지 테이블 모델 fireDataChanged
을 호출 할 때 버튼을 만들 때까지갔습니다.
또한 getValueAt
함수를 호출하고 좋은 데이터를 반환합니다.
테이블을 다시 그리지 않게 할 다른 것이 있습니까?