Hallo zusammen,
ich bin gerade dran ein kleines Programm zur Überwachung von Überweisungen zu schreiben.
Beim starten des Programms werden die offenen Überweisungen aus der Datenbank geladen und in einen Vector geschrieben. Dieser Vector wird dann mit der Methode setDataVector(...) dem TableModerl übergeben, das ich zuvor erstellt habe. Soviel dazu. Die Daten werden in der jTable ausgegeben. Zur Erinnerung daran, das die Überweisungen rechtzeitig getätigt werden, kann ich einen Wert setzen, der so und so viel Tage davor warnt das noch ausstehende Überweisungen getätigt werden müssen.
Nach dem Füllen der jTable läuft eine Routine ab, die überprüft, welche Überweisungen noch getätigt werden muss und welche übnerfällig ist. Dementsprechend wird ein Flag gesetzt. Anhand diesem Flag möchte ich später die anstehenden Überweisungen orange und die überfälligen rot in der jTable färben.
Wie in der API habe ich eine neue Klasse, die vom DefaultTableCellRenderer erbt erstellt.
Der Code sieht so aus:
Das in der Klasse noch eine Routine implementiert werden muss, das die row abprüft und dementsprechend den Background anders färbt ist mir klar. Habe ich auch schon ausprobiert.
Da liegt auch das Problem. Wenn ich das so implementiere, das die Flags überprüft werden und dementsprechend die Farben gesetzt werden, wird immer nur die letzte Zeile die die in der Routine behandelt wird eingefärbt.
Für mich schaut das so aus, als ob nach jedem Durchlauf die zuvor gesetzte Farbe der Zeile wieder rückgesetzt wird und die nächste eingefärbt wird.
Was mache ich falsch ??
Gibt es auch eine andere Methode um die gesamte Tabelle nach den oben genannten Kriterien farblich zu kennzeichnen?
Vielen Dank Gruß Timo.
ich bin gerade dran ein kleines Programm zur Überwachung von Überweisungen zu schreiben.
Beim starten des Programms werden die offenen Überweisungen aus der Datenbank geladen und in einen Vector geschrieben. Dieser Vector wird dann mit der Methode setDataVector(...) dem TableModerl übergeben, das ich zuvor erstellt habe. Soviel dazu. Die Daten werden in der jTable ausgegeben. Zur Erinnerung daran, das die Überweisungen rechtzeitig getätigt werden, kann ich einen Wert setzen, der so und so viel Tage davor warnt das noch ausstehende Überweisungen getätigt werden müssen.
Nach dem Füllen der jTable läuft eine Routine ab, die überprüft, welche Überweisungen noch getätigt werden muss und welche übnerfällig ist. Dementsprechend wird ein Flag gesetzt. Anhand diesem Flag möchte ich später die anstehenden Überweisungen orange und die überfälligen rot in der jTable färben.
Wie in der API habe ich eine neue Klasse, die vom DefaultTableCellRenderer erbt erstellt.
Der Code sieht so aus:
Java:
public class TableRenderer extends DefaultTableCellRenderer {
@Override
public java.awt.Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
return this;
}
}
Das in der Klasse noch eine Routine implementiert werden muss, das die row abprüft und dementsprechend den Background anders färbt ist mir klar. Habe ich auch schon ausprobiert.
Da liegt auch das Problem. Wenn ich das so implementiere, das die Flags überprüft werden und dementsprechend die Farben gesetzt werden, wird immer nur die letzte Zeile die die in der Routine behandelt wird eingefärbt.
Für mich schaut das so aus, als ob nach jedem Durchlauf die zuvor gesetzte Farbe der Zeile wieder rückgesetzt wird und die nächste eingefärbt wird.
Was mache ich falsch ??
Gibt es auch eine andere Methode um die gesamte Tabelle nach den oben genannten Kriterien farblich zu kennzeichnen?
Vielen Dank Gruß Timo.