DefaultTableCellRenderer
Christian
- java
Hallo!
Ich habe eine Tabelle, in dieser soll die erste Hälfte der Zeilen in einer Farbe dargestellt werden, die andere in einer anderen Farbe.
Ich habe dafür folgende Klasse geschrieben
//============
class ColoredTableCellRenderer extends DefaultTableCellRenderer
{
public void setValue( Object value )
{
setBackground( Color.blue );
setText(String.valueOf(value));
}
}
//============
Diese habe ich als DefaultRenderer meiner Tabelle zugewiesen
//============
DefaultTableCellRenderer ren = new ColoredTableCellRenderer();
Ausgabe.setDefaultRenderer(ColoredTableCellRenderer.class,ren);
//============
Soweit ist es in meinem Buch beschrieben. Die Ausgabe in der Tabelle hat aber immer noch die alte Farbe. Muß ich vielleicht irgendwie noch die Methode "setValue" verwenden? Aber wie und wo?
Kann mir vielleicht jemand ein einfaches Beispiel geben, wie man eine Tabelle mit farbigem Hintergrund ausgibt?
Danke!!
Hallo,
Ich habe eine Tabelle, in dieser soll die erste Hälfte der Zeilen in einer Farbe dargestellt werden, die andere in einer anderen Farbe.
Ich habe dafür folgende Klasse geschrieben
//============
class ColoredTableCellRenderer extends DefaultTableCellRenderer
{
//Hier fehlt der Constructor
public ColoredTableCellRenderer() { super(); }
public void setValue( Object value )
{
setBackground( Color.blue );
setText(String.valueOf(value));
}
}
//============Diese habe ich als DefaultRenderer meiner Tabelle zugewiesen
//============
DefaultTableCellRenderer ren = new ColoredTableCellRenderer();
Ausgabe.setDefaultRenderer(ColoredTableCellRenderer.class,ren);
^Hiermit setzt Du den DefaultTableCellRenderer für alle Zellen der Tabelle Ausgabe, welche Daten vom Typ ColoredTableCellRenderer enthalten. Ergo wahrscheinlich für keine.
//============
Soweit ist es in meinem Buch beschrieben. Die Ausgabe in der Tabelle hat aber immer noch die alte Farbe. Muß ich vielleicht irgendwie noch die Methode "setValue" verwenden? Aber wie und wo?
Kann mir vielleicht jemand ein einfaches Beispiel geben, wie man eine Tabelle mit farbigem Hintergrund ausgibt?
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
viele Grüße
Axel
Hallo Axel,
public ColoredTableCellRenderer() { super(); }
Diese Konstruktor existiert automatisch, wenn kein anderer angegeben wurde.
Grüße
Daniel
Hallo Daniel,
public ColoredTableCellRenderer() { super(); }
Diese Konstruktor existiert automatisch, wenn kein anderer angegeben wurde.
Ja, jetzt wo Du es schreibst, sehe ich es auch ;-))
Allerdings ist es für mich trotzdem ein Fehler, wenn so etwas in einem Buch für Beginner angeboten wird. Es sei denn, es wäre dort irgendwo ausführlich erläutert. Der eigentliche Fehler im Ausgabgsposting ist es natürlich nicht. Der ist im Setzen des DefaultRenderers zu suchen.
viele Grüße
Axel