Hi!
Ich hab ein Problem bezüglich des DefaultTableModel und des DefaultTableCellRenderer.
Ich möchte die Farbe der Schrift in der Tabelle ändern...funktioniert soweit auch:
[JAVA=42]public class ColoredTableCellRenderer extends DefaultTableCellRenderer {
@Override
public void setValue(Object value) {
String s = value.toString();
try {
if (Double.parseDouble(s) > 0.0)
setForeground(Color.GREEN);
else
setForeground(Color.RED);
} catch (Exception e) {
// TODO: handle exception
}
setText(s);
}
}[/code]
aufgerufen wird es mittels:
[JAVA=42]
DefaultTableCellRenderer ren = new ColoredTableCellRenderer();
table.setDefaultRenderer ( Object.class, ren );
[/code]
Problem ist nun, dass ich NUR Strings in der Tabelle habe.
Jedoch befinden sich auch Zahlen drin, als Strings jedoch abgespeichert.
Ich würde halt gern nur bestimmte Zellen färben, und nicht die ganze Tabelle.
Ist das überhaupt möglich?
Irgendwie mit getValueAt(i, 4) diese Spalte z.B. mit ner forSchleife durchzulaufen und die Farbe zu ändern, und den Rest einfach unbehandelt zu lassen?
Ich hab ein Problem bezüglich des DefaultTableModel und des DefaultTableCellRenderer.
Ich möchte die Farbe der Schrift in der Tabelle ändern...funktioniert soweit auch:
[JAVA=42]public class ColoredTableCellRenderer extends DefaultTableCellRenderer {
@Override
public void setValue(Object value) {
String s = value.toString();
try {
if (Double.parseDouble(s) > 0.0)
setForeground(Color.GREEN);
else
setForeground(Color.RED);
} catch (Exception e) {
// TODO: handle exception
}
setText(s);
}
}[/code]
aufgerufen wird es mittels:
[JAVA=42]
DefaultTableCellRenderer ren = new ColoredTableCellRenderer();
table.setDefaultRenderer ( Object.class, ren );
[/code]
Problem ist nun, dass ich NUR Strings in der Tabelle habe.
Jedoch befinden sich auch Zahlen drin, als Strings jedoch abgespeichert.
Ich würde halt gern nur bestimmte Zellen färben, und nicht die ganze Tabelle.
Ist das überhaupt möglich?
Irgendwie mit getValueAt(i, 4) diese Spalte z.B. mit ner forSchleife durchzulaufen und die Farbe zu ändern, und den Rest einfach unbehandelt zu lassen?