If anyone has any advice on this it would be greatly appreciated!! Spent the last couple of weeks trying to work it out! Cant populate the table properly - keeps duplicating the first record in the list.
public class AccountsTableModel extends AbstractTableModel {
//Creates a
String array to hold the column names which will be displayed
//in the table
private List columnNames = new ArrayList();
private List dataList = new ArrayList();
private List rowList = new ArrayList();
private List entries;
private Entry debitEntry;
//Constructor for the AccountsTableModel Class
public AccountsTableModel (Account account){
addColumnNames();
//Gets the list of entries from the Account class
entries = account.getEntries();
//Creates an iterator to go through the list of entries
Iterator entriesIterator = entries.iterator();
while(entriesIterator.hasNext()){
Entry entry = (Entry)entriesIterator.next();
Entry creditEntry = entry.getTransaction().getCreditEntry();
Transaction transaction = entry.getTransaction();
String date = entry.getTransaction().getDate();
rowList.add(date);
String name = creditEntry.getAccount().getName();
rowList.add( name);
Integer transactionNumber = new Integer(entry.getTransaction().getTransactionNumber());
rowList.add(transactionNumber);
String nullAmount = "";
Integer amount;
if (entry.getDebit() == true){
rowList.add(nullAmount);
amount = new Integer(entry.getAmount());
rowList.add(amount);
}
else{
amount = new Integer (entry.getAmount());
rowList.add (amount);
rowList.add (nullAmount);
}
dataList.add(rowList);
System.out.println ("DATALIST" + dataList);
/*Iterator dataIterator = dataList.iterator();
while(dataIterator.hasNext()){
Object object = (Object)dataIterator.next();
System.out.println(object);
System.out.println(dataList.size());
}*/
}// end while loop
}
public void addColumnNames() {
columnNames.add ("Date");
columnNames.add ("Transaction");
columnNames.add ("Number");
columnNames.add ("Cr Amount");
columnNames.add ("Dr Amount");
}
public int getColumnCount() {
return columnNames.size();
}
public int getRowCount() {
return dataList.size();
}
public String getColumnName(int col) {
return (String)columnNames.get(col);
}
public Object getValueAt(int row, int col) {
//System.out.println("Col" + col);
//System.out.println("Row" + row);
List rowList = (List) (dataList.get(row));
System.out.println("ROWLIST" + rowList);
//System.out.println(rowList.size());
//System.out.println(rowList.get(col));
rowList.get(col);
//System.out.println("DATALIST:" + dataList);
return rowList.get(col);
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
/*Don't implement this method unless tables editable.*/
public boolean isCellEditable(int row, int col) {
//Note that the data/cell address is constant,
//no matter where the cell appears onscreen.
if (col < 2) {
return false;
} else {
return true;
}
}
/* Don't implement this method unless table's data can change.*/
/* public void setValueAt(Object value, int row, int col) {
dataList.get(col) = value;
fireTableCellUpdated(row, col);
}*/
}