AbstractTabelModel
Hejsa :O)Er i gang med at lave en klasse som skal behandler en anden klasses data, hentet fra en Access-database formateret i en Vector.
Ideen er, at klassen skal ende ud i en JTable magen til den man vil kunne se i Access ved et simpelt SQL-statement; "SELECT * FROM TABEL".
Til dette har jeg valgt at definere en AbstractTableModel, altså implementere metoderne;
public int getColumnCount() { ... }
public int getRowCount() { ... }
public Object getValueAt(int row, int col) { ... }
Mit problem er, at den klasse som extender AbstractTabelModel, skal definere 2 konstanter, nemlig;
final String [] columnNames = { ... };
final Object [][] data = { { ... } };
Hvis ikke dette sker dør programmet af NullPointerException.
I min lille verden havde jeg håbet på, at man kunne erklære variablene globalt og tildele dem værdi i konstruktoren, hvilket så burde virke... (Er med på, at de ikke kan være final i ovenstående...)
I klassens konstruktor foregår følgende:
public TableModel(){
//vc er en Vector som returneres fra db,
//indeholdende tabellens kolonnenavne
vc = db.getColumnNames("SELECT * FROM Tabel");
int size = vc.size();
for(int i = 0; i<size; i++)
columnNames[i] = vc.get(i).toString();
}
Ovenstående virker ikke, der kommer en NullPointerException i:
"public int getColumnCount() { ... }"
som jeg jo er tvunget til at implementere. Jeg har en forestilling om, at årsagen til problemet skal finde i selve objektoprettelsesøjeblikket, hvor det implementerede interface tilsyneladende initialiseres førend konstruktoren.
Med håb om hjælp og på forhånd mange tak :-)
