Angenommen, Sie haben eine JTable
und für jede Zelle möchten Sie drei Strings mit unterschiedlicher Farbe anzeigen, sagen Wert1 (rot), Wert2 (blau), Wert3 (grün) .Mehrere Strings auf unterschiedliche Weise in die gleiche Zelle einer JTable eingefärbt
Ich überschrieb die getTableCellRendererComponent
DefaultTableCellRenderer
aber setForeground(Color)
Methode gibt eine eindeutige Farbe für die gesamte Zeichenfolge in der Zelle angezeigt.
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
String s = table.getModel().getValueAt(row,column).toString();
StringTokenizer st = new StringTokenizer(s," ");
int nToken=st.countTokens();
value1=st.nextToken();
value2=st.nextToken();
value3=st.nextToken();
// so now all the values are blue...
setForeground(Color.blue);
return super.getTableCellRendererComponent(table, value, isSelected,
hasFocus, row, column);
}
HTML-Komponenten in Tabellen wird sehr schnell sehr langsam. Sie können die Komponenten zwischenspeichern, aber das wird nicht nur in speziellen Fällen schwierig. –
Die Alternative, Ihre eigene JComponent zu schreiben, ist schnell. Aber schwierig, es richtig zu machen –