Swing Elemente einer JList Farbig hinterlegen

scaary

Bekanntes Mitglied
Hiho,

also,
ich habe eine JList die ich mit Namen Fuelle.

Jetzt sagen wir mal, alle Namen, die mit einem B beginnen, sollen gelb hinterlegt werden.

geht sowas?

Danke 🙂
 
Oi,
ich hab das mit dem Cell Renderer in der API grade gelesen,

uhhmmm.

geht es nicht evtl einfacher, sowas in der Art wie mit ner for schleife drueber laufen und alle entsprechenden Elemente gelb hinterlegen? 🙂

(bitte bitte?) 🙂
 
Oi,
ich hab das mit dem Cell Renderer in der API grade gelesen,

uhhmmm.

geht es nicht evtl einfacher, sowas in der Art wie mit ner for schleife drueber laufen und alle entsprechenden Elemente gelb hinterlegen? 🙂

(bitte bitte?) 🙂

Das wäre ja fast noch komplizierter als mit einem eigenen CellRenderer, wobei gibts denn Probleme?
 
Java:
 for (int i = 0; i < bewerbernamenJList.getModel().getSize(); i++) {
                if (bewerbernamenJList.getModel().getElementAt(i).toString().contains("MV")) {
                    bewerbernamenJList.getModel().getElementAt(i).setSelectionBackground(YELLOW);
                } 
 }
Das ist eigentlich das, was das ding machen soll 🙂
Leider klappts nicht so ganz... 🙁


Mein Problem ist, ich versteh das Beispiel in der API nicht... da sind so viele sachen, die ich alle nicht brauche 🙁
 
Java:
class ColoredRenderer extends DefaultListCellRenderer {
	@Override
	public Component getListCellRendererComponent(JList list, Object value,
			int index, boolean isSelected, boolean cellHasFocus) {
		super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
		if (((String) value).contains("MV")) { //geht natürlich nur wenn du auch wirklich strings hast, sonst halt vorher value auf deine klasse casten und dir den string besorgen
			setBackground(Color.YELLOW);
		} else {
			setBackground(Color.WHITE);
		}
                      //......
		return this;
	}
}

Java:
bewerbernamenJList.setCellRenderer(new ColoredRenderer());
 
Zuletzt bearbeitet:

Zurück
Oben