Terence,
I'm glad that you saw my post, given your experience.

I have already tried what you suggested. Here is what I have for my "MyTableData" class:
<code>
public class MyTableModel extends AbstractTableModel
{
static final public String Name = "Name";
static final public String Email = "Email";
protected String[] columnNames={};
protected Vector data = null;
protected Vector contacts = null;
public MyTableModel()
{
super();
data = new Vector();
contacts = new Vector();
columnNames = new String[2];
columnNames[0] = new String("Name");
columnNames[1] = new String("Email");
}
public String getColumnName(int column)
{
if (columnNames[column] != null)
return columnNames[column];
else
return "";
}
public int getColumnCount()
{
return columnNames.length;
}
public int getRowCount()
{
return data.size();
}
public Object getValueAt(int row, int col)
{
return data.elementAt(row);
}
public Contact getContact(int index){
return ((Contact)contacts.get(index));
}
public void removeRow(int row)
{
data.remove(row);
contacts.remove(row);
fireTableDataChanged();
}
public void updateName(Contact contact)
{
Vector row = new Vector(2);
row.add(0, contact.getName());
row.add(1, contact.getEmail());
data.add(row);
row=null;
contacts.add(contact);
fireTableRowsInserted(data.size()-1, data.size());
}
public void clear()
{
contacts.removeAllElements();
data.removeAllElements();
fireTableDataChanged();
}
public void setContacts(Vector v)
{
Contact cnt;
Iterator allContacts = v.iterator();
while (allContacts.hasNext())
{
Vector row = new Vector();
cnt = ((Contact)allContacts.next());
row.addElement(cnt.getName());
row.addElement(cnt.getEmail());
data.addElement(row);
row = null;
}
contacts = v;
fireTableDataChanged();
cnt = null;
}
public Vector getContacts()
{
return contacts;
}
}
</code>
As you can see, I have the "row.add" statements as you suggested, and it still placed both pieces of data in both of the columns. The interesting this is that I do indeed have a "data holder class". It's my "Contacts" object, which holds the data I am attempting to place in the JTable.
What else can I check? Given your experience, I'd appreciate any feedback that you could give me. Thanks Terence.