Hallo Leute!
Ich habe ein Problem mit dem Casting eines Objektes. Ich habe viele Spalten in einer Tabelle (mehr als in dem kurzen Beispiel gezeigt werden) und möchste, um den Code übersichtlicher zu machen, die Spalten über eine FOR-Schleife initialisieren.
Dafür habe ich alle Informationen zu einer Spalte in ein zweidimensionales Array gelegt. Beim Durchlaufen dieses Arrays sollen die Spalten initialisiert werden.
Das Problem ist, dass ich verschiedene Typen von TableCellRenderer habe und die muss ich von Object zum entsprechenden Typ casten. Das bereitet mir allerdings unüberwindbare Schwierigkeiten. ;-)
So wie der Code jetzt ist, gibt die Fehlermeldung "cannot find symbol in Zeile 32. Wenn ich die Zeilen 17 bis 28 weglasse und
direkt
übergebe, dann nörgelt er auch.
Wie mache ich es richtig?
Ich habe ein Problem mit dem Casting eines Objektes. Ich habe viele Spalten in einer Tabelle (mehr als in dem kurzen Beispiel gezeigt werden) und möchste, um den Code übersichtlicher zu machen, die Spalten über eine FOR-Schleife initialisieren.
Dafür habe ich alle Informationen zu einer Spalte in ein zweidimensionales Array gelegt. Beim Durchlaufen dieses Arrays sollen die Spalten initialisiert werden.
Das Problem ist, dass ich verschiedene Typen von TableCellRenderer habe und die muss ich von Object zum entsprechenden Typ casten. Das bereitet mir allerdings unüberwindbare Schwierigkeiten. ;-)
So wie der Code jetzt ist, gibt die Fehlermeldung "cannot find symbol in Zeile 32. Wenn ich die Zeilen 17 bis 28 weglasse und
Code:
columns[i][3]
Code:
col.setCellRenderer()
Wie mache ich es richtig?
Java:
Object[][] columns = {
{ COLUMN_NR, 30, "Nr", slcr },
{ COLUMN_VORNAME, 100, "Vorname", slcr },
{ COLUMN_NAME, 100, "Name", slcr },
{ COLUMN_ALTER, 40, "Alter", slcr },
{ COLUMN_POSITION, 40, "Pos", pcr },
{ COLUMN_ADRESSE, 100, "Adresse", mlcr }
};
TableColumn col;
for(int i = 0; i < columns.length; i++) {
Integer modelIndex = (Integer) columns[i][0];
Integer width = (Integer) columns[i][1];
String header = (String) columns[i][2];
if (columns[i][3] instanceof SingleLineCellRenderer) {
SingleLineCellRenderer renderer = (SingleLineCellRenderer) columns[i][3];
}
else if(columns[i][3] instanceof MultiLineCellRenderer) {
MultiLineCellRenderer renderer = (MultiLineCellRenderer) columns[i][3];
}
else if(columns[i][3] instanceof PositionCellRenderer) {
PositionCellRenderer renderer = (PositionCellRenderer) columns[i][3];
}
else {
DefaultTableCellRenderer renderer = (DefaultTableCellRenderer ) columns[i][3];
}
col = new TableColumn(modelIndex, width);
col.setHeaderValue(header);
col.setCellRenderer( renderer );
columnModel.addColumn(col);
}