JTable Spaltenindex ermitteln

Hi,

ich verwende eine JTable. Darin gibt es unter anderem die Spalte “Kategorie”.
Wenn ich den Header einer Spalte mit der linken Taste gedrückt halte so kann ich die Spalten mit der Maus neu anordnen,
was eine recht schöne Sache ist.

Nun möchte ich, die Index Position einer bestimmten Spalte ermitteln, um später den Inhalt einer bestimmen
Zelle auszulesen. Allerdings weiß ich nicht wie ich den Spaltenindex einer bestimmten Spalte ermitteln kann.
Denn nach dem neu anordnen einer Spalte, wird mir über getModelIndex() immer noch der alte Spaltenindex
zurückgegeben und es wird dann bei table.getValueAt() auf die falsche Zelle zugegriffen. Wie kann ich den aktuellen Spaltenindex
der Spalte “Kategorie” ermitteln?

int coulumnIndex = table.getColumn("Kategorie").getModelIndex();
System.out.println(table.getValueAt(rowIndex, columnIndex));

Der Modelindex einer Spalte bleibt beim Verschieben gleich. Man könnte diesen mittels convert Methode der JTable in deren Index “übersetzen” oder man liest den Wert über das Model und deren getValueAt aus.
Alternativ wäre ein eigenes Model mit eigenen Datenobjekten möglich, dann müsste man sich damit nicht rumschlagen.

Du kannst über das Model alle Spaltennamen durch alle Spaltennamen iterieren mit

String getColumnName(int column)

und dann mittels

getValueAt(int row, int column)

auf die Zelle deiner Wahl zugreifen

[quote=BlupBlup]Nun möchte ich, die Index Position einer bestimmten Spalte ermitteln, um später den Inhalt einer bestimmen
Zelle auszulesen.[/quote]Warum?
Dem TableModel sollte doch egal sein, in welcher Spalte die Daten gerade angezeit wurden. Deshalb mach man den ganzen Aufwand mit dem MVC doch…

bye
TT