Hallo,
ich habe zwar das JTable-Tutorial hier im Forum durchgekaut, komme aber an einer Stelle trotzdem nicht weiter.
Die Situation: Eine JTable mit lauter formatierten Datumswerten in einer Spalte, z.B. "Mo, 19.02.06". Nun möchte ich alle Datumsangaben rechts ausrichten und vergangene Termine in roter Schrift haben.
Hier mein aktueller Stand:
Ergebnis: Die Datumsangaben stehen rechtsbündig, sind aber entweder alle rot oder alle schwarz. Den Renderer weise ich so zu:
Ich kapier nicht, wie ich jede Zeile einzeln betrachten kann. Bin halt noch Anfänger... :autsch:
Tiefe Verbeugung vor jedem, der helfen kann...
Rene
ich habe zwar das JTable-Tutorial hier im Forum durchgekaut, komme aber an einer Stelle trotzdem nicht weiter.
Die Situation: Eine JTable mit lauter formatierten Datumswerten in einer Spalte, z.B. "Mo, 19.02.06". Nun möchte ich alle Datumsangaben rechts ausrichten und vergangene Termine in roter Schrift haben.
Hier mein aktueller Stand:
Code:
import java.awt.Color;
import java.awt.Component;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
public class TabellenTerminRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
Component myself = super.getTableCellRendererComponent(table,
value, isSelected, hasFocus,
row, column);
setHorizontalAlignment(SwingConstants.RIGHT);
String tabellendatum = (String)table.getValueAt(row, 1);
if(tabellendatum.length()>0) {
SimpleDateFormat sdf=new SimpleDateFormat("EEE', 'dd.MM.yy");
Date heute=new Date();
try {
Date datum = sdf.parse(tabellendatum);
if(heute.after(datum)) {
setForeground(Color.RED);
}
} catch (ParseException ex) {
ex.printStackTrace();
}
}
return myself;
}
}
Ergebnis: Die Datumsangaben stehen rechtsbündig, sind aber entweder alle rot oder alle schwarz. Den Renderer weise ich so zu:
Code:
TableColumn col1 = tblTerminplan.getColumnModel().getColumn(1);
col1.setCellRenderer(new TabellenTerminRenderer());
Ich kapier nicht, wie ich jede Zeile einzeln betrachten kann. Bin halt noch Anfänger... :autsch:
Tiefe Verbeugung vor jedem, der helfen kann...
Rene