PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Listbox



theone
21-04-2006, 17:46
Hi

Kann ich in einer ListBox Zeilen mit einer verschieden Farbe markieren oder den Schriftfarbe setzen?

mfg theone

mwanaheri
21-04-2006, 19:03
Bist du sicher, dass du nicht von Javascript redest?

theone
21-04-2006, 19:07
Nein Java.

Ich hab folgendes vor:

Ich möchte ein Spiel programmieren. Und zwar geht das alles über einen Server. Jeder kann ein Spiel eröffnen, wo sich ein Spieler dazu verbinden kann. Und jetzt möchte ich es so darstellen, dass die Spiele, wo schon 2 Spieler spielen rot dargestellt werden und die anderen grün. Wie kann ich das am besten realisieren? Was für ein Swing ding nehme ich da?

mfg theone

mwanaheri
21-04-2006, 21:30
Ah, ok. In dem Fall würde ich eine JComboBox nehmen. Zum Einfärben der einzelnen Items ist dann (glaube ich) der ListCellRenderer da.

theone
22-04-2006, 10:44
Hast du den ein Beispiel. Hab mir jetzt die API durchgeschaut check aber nicht wie das gehen soll.

mgh theone

mwanaheri
25-04-2006, 08:37
Ich hab es mal spaßeshalber durchgespielt. Eine kleine Lösung ist angehängt - mit gräßlichen Farben.
Im wesentlichen brauchst du zwei Hilfsklassen:
1) eine Klasse für deine Items
Diese Klasse enthält alles, was dein Item wissen soll, also hier z.B. die Bezeichnung, die Anzahl der Spieler und weitere Informationen, die du noch verwenden willst. Grundsätzlich kannst du jedes Objekt an eine ComboBox übergeben, solange es die Methode toString() hat. Die wird nämlich vom normalen Renderer ausgewertet, um den Text zu setzen.
2) einn eigenen ListCellRenderer
Mit dem bestimmst du, wie eine Listenzelle dargestellt werden soll. Ich habe den hier von JLabel abgeleitet. Wichtig ist, dass du das Interface ListCellRenderer implementierst. Du brauchst dafür nur eine einzige Methode, nämlich getListCellRendererComponent

Das Beispiel ist schnell zusammengestrickt. Würdest du ein anderes Item an die ComboBox übergeben als eins von der Klasse AnItem, würde es abstürzen. Es geht ja auch nur um das Verfahren.

Auf http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html
findest du noch mehr Infos zu ComboBoxen.

Gruß
Ralf