I've been trying to display a JTable
and have been getting strange artifacts.
I have a class that extends AbstractTableModel
. I'm not sure why I'm getting these artifacts. How do I get JTable
to display correctly?
Below is my TableModel
public class AllScansModel extends AbstractTableModel {
private List<WasScan> wasScans;
private String[] columns = new String[] { "Name", "Type", "Profile", "Date", "Status" };
public AllScansModel(List<WasScan> wasScans) {
this.wasScans = wasScans;
}
@Override
public int getRowCount() {
return wasScans.size();
}
@Override
public int getColumnCount() {
return columns.length;
}
public void setValueAt(int rowIndex, WasScan wasScan) {
wasScans.set(rowIndex, wasScan);
fireTableRowsUpdated(rowIndex, rowIndex);
}
public void addValue(WasScan wasScan){
wasScans.add(wasScan);
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
WasScan scan = wasScans.get(rowIndex);
switch (columnIndex) {
case 0:
return scan.getName().getValue();
case 1:
return scan.getType().toString();
case 2:
return scan.getProfile().getName().toString();
case 3:
return scan.getEndScanDate().toString();
case 4:
return scan.getStatus().toString();
}
return null;
}
@Override
public String getColumnName(int column) {
return columns[column];
}
public void updateTable(List<WasScan> wasScans) {
this.wasScans = wasScans;
fireTableDataChanged();
}
}