JTable: Problem bei CellRenderer

javabar

Mitglied
Hallo!

Folgendes Problem:

Ich habe eine JTable mit eigenem CellRenderer und eigenem Model.

Dieser färbt Zeilen und Felder, die geänderte Daten enthalten, ein.

Es funktioniert prima, solange die Tabelle in der Ausgangsreihenfolge sortiert ist, und nicht nach einer bestimmten Spalte.

Das liegt daran, dass die Methoden getValueAt(int rowIndex, int columnIndex) und setValueAt(Object aValue, int rowIndex, int columnIndex) von TableModel die Zeile und Spalte im Model übergeben bekommen, die Methode getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) bekommen die Zeilen- und Spaltennummer der angezeigten Tabelle.
Diese Werte stimmen nicht mehr, wenn sich die Reihenfolge der Zeilen ändert, vermutlich auch wenn Filter angewendet werden.

Wie komme ich an die richtige Zeilennummer im Model? Irgendwo muss ein Zuordnungs-Index existieren...

Grüße

Egon
 
Ich hab's selbst gelöst bekommen:

Java:
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            //...
            int rowIndex = table.convertRowIndexToModel(row);
            int columnIndex = table.convertColumnIndexToModel(column);
            // ...
}

Grüße

Egon
 
Zuletzt bearbeitet:

Zurück
Oben