I am trying to add rows dynamically in a table with AbstractTableModel. The rows are being added in a loop. When the second row gets added, the values of the first row show as null in table. The program is designed such a way that the rows values get refreshed but just for the user's viewing sake, how can i keep the values on the table as it is without it being refreshed to null values.
Why does the table always refreshes the table rendering from first row? Is there a way to render only next row without reprinting what has already been printed in the first row.
Here are some parts of my code:
public class RunConfig extends AbstractTableModel {
private final LinkedList<Section> daten = new LinkedList<Section>();
private String[] header = {"Links","% N", "% M", "% H", "% S"};
public RunConfig() {
}
public void addElement(Section addValue)
{
daten.add(addValue);
fireTableRowsInserted(daten.size()-1, daten.size()-1);
}
public int getColumnCount() {
return header.length;
}
public String getColumnName(int col) {
return header[col];
}
public Object getValueAt(int row, int col) {
return ((Section)daten.get(row));
}
public int getRowCount() {
return daten.size();
}
public boolean isCellEditable(int row, int col){
return false;
}
}
I am wondering if the application is managing the Section objects correctly. Please make sure every addElement is working with a different instance of Section object and not reusing the same object or nulling its fields after adding to the table model:
Please try the following to make sure table gets a unique object that is never modified from the outside: