# Farbe bei List und TextArea



## inter (24. Nov 2003)

Hi, 

ich MUSS in einem Projekt AWT benutzen und verwende List und TextArea. 
Nun möchte ich gewisse Zeilen in der List sowie in der TextArea farbig gestalten (oder fett, anderer Schriftstil usw). 
setFont(...) bringt mir z.B. nichts, da dies den Font ALLER Elemente verändert (ich möchte aber nur einzelene Elemente editieren). 
Gibt es da irgend eine Möglichkeit ? 

Danke, 
flo


----------



## Ebenius (24. Nov 2003)

Mit der _JTextArea_ hast Du's da ein bisschen schwer. Wenn es kein Problem ist, nutze doch das _JTextPane_ mit HTML etwa so:

```
JTextPane textPane = new JTextPane();
textPane.setContentType("text/html");
textPane.setText("<html><body>HTML hier.</body></html>");
```

Wegen der Liste: Da _JLabels_ auch HTML anzeigen und die Zeilen per Default mit dem _DefaultListCellRenderer_(is'n _JLabel_-Derivat) dargestellt werden, kannst Du hier auch HTML an die Liste übergeben. Etwa so:

```
JList list = new JList(new Object[] { //
	"<html><body><div style='color:blue'>Eintrag 1</div></body></html>", //
	"<html><body><div style='color:green'>Eintrag 2</div></body></html>", //
	"<html><body><div style='color:red'>Eintrag 3</div></body></html>" });
```

Oder Du setzt Deinen eigenen _ListCellRenderer_ auf die Tabelle und setzt dort die Farbe etwa so:

```
JList list = new JList(new Object[] { "Eintrag 1", "Eintrag 2", "Eintrag 3" });
list.setCellRenderer(new DefaultListCellRenderer()
{
	Color[] COLORS = new Color[] { Color.BLUE, Color.GREEN, Color.RED };

	public Component getListCellRendererComponent(
			JList list, Object value, int index, 
			boolean isSelected, boolean cellHasFocus)
	{
		Component comp = super.getListCellRendererComponent(list, value, 
				index, isSelected, cellHasFocus);
		comp.setForeground(COLORS[index % COLORS.length]);
		return comp;
	}
});
```

HTML ist auf jeden Fall langsamer als die _CellRenderers_ ohne HTML. Außerdem empfielt es sich stets, die Daten vom Aussehen zu trennen, was bei der HTML-Variante in der Liste auch nicht gegeben ist.

Viel Spaß, Ebenius


----------

