Hallo!
Vielleicht gibt es doch eine Lösung und jemand kennt sie...
Ich verwende eine JTable und habe eine Datumsspalte, in welcher innerhalb einer Mitgliederliste
das Datum der Flugtauglichkeit angezeigt wird. Sofern ein Pilot nicht mehr tauglich ist, wird das Datum in rot dargestellt. Nur wenn eine Zeile selektiert ist, möchte ich das nicht. Wie kann ich das machen?
Diese Frage ergibt sich insbesondere, weil ich künftig in meinen Tabellen die Werte der Spalte, nach welcher sortiert wird in bau darstellen möchte. Da die Farbe der selektierten Zeilen ebenfalls blau ist, müsste ich in diesem Fall nur den Wert der Zelle, welche selektiert ist und in der Sortierspalte liegt, anders darstellen. Zum Beispiel in weiß. Denn blaue Schrift auf blauem Hintergrund macht sich nicht gut.
Mein Code:
(Das
sorgt lediglich für eine gezielt formatierte Ausgabe des Datumwertes.)
Ich hoffe, es gibt einen Weg...
Grüße
JAR
Vielleicht gibt es doch eine Lösung und jemand kennt sie...
Ich verwende eine JTable und habe eine Datumsspalte, in welcher innerhalb einer Mitgliederliste
das Datum der Flugtauglichkeit angezeigt wird. Sofern ein Pilot nicht mehr tauglich ist, wird das Datum in rot dargestellt. Nur wenn eine Zeile selektiert ist, möchte ich das nicht. Wie kann ich das machen?
Diese Frage ergibt sich insbesondere, weil ich künftig in meinen Tabellen die Werte der Spalte, nach welcher sortiert wird in bau darstellen möchte. Da die Farbe der selektierten Zeilen ebenfalls blau ist, müsste ich in diesem Fall nur den Wert der Zelle, welche selektiert ist und in der Sortierspalte liegt, anders darstellen. Zum Beispiel in weiß. Denn blaue Schrift auf blauem Hintergrund macht sich nicht gut.
Mein Code:
(Das
Code:
setText(lib.UtilDateTime.getDateString((Date)value, DateFormat.MEDIUM));
Code:
class TableCellRendererMedicaldate extends DefaultTableCellRenderer
{
@Override
public void setValue(Object value) {
if (value instanceof Date) {
if ((Date)value != null) {
Date medicaldate = (Date)value;
if (medicaldate.compareTo(new Date()) < 0) setForeground(Color.RED);
else setForeground(new Color(26, 26, 26)); // deault black
}
setText(lib.UtilDateTime.getDateString((Date)value, DateFormat.MEDIUM));
}
else super.setValue(value);
}
}
Ich hoffe, es gibt einen Weg...
Grüße
JAR