Anwendung von "DefaultTableCellRenderer"

ich_Schmiddy

Mitglied
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!

Machs doch mal so:

Code:
import java.awt.Color;
import java.awt.Component;

import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;

/**
 * @author      Darimont<br>
 * @version     1.0<br>
 * Date of creation:  23.03.2004<br>
 * File:         JTableTest.java<br>
 * Modifier:     Darimont<br>
 * Revision:     Revision<br>
 * State:        Germany<br>
 */

public class JTableTest extends JFrame {

	private JTable table = new JTable(5, 3) {
		public Component prepareRenderer(
			TableCellRenderer renderer,
			int row,
			int column) {
			Component c = super.prepareRenderer(renderer, row, column);
			if (row % 2 == 0)
				c.setBackground(Color.BLUE);
			else
				c.setBackground(Color.ORANGE);
			return c;
		}
	};

	public JTableTest() {
		setSize(320, 240);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		getContentPane().add(table);
		setVisible(true);
	}

	public static void main(String[] args) {
		new JTableTest();
	}
}

Gruß Tom
 

Neue Beiträge

Zurück