Hi,
ich benutze für meine JList einen eigenen Renderer und möchte den Hintergrund des selektierten Objekts ändern.
Klicke ich nun auf ein anderers Element in der Liste, soll das zuvor ausgewählte Element seinen Hintergrund "wieder verlieren", also durchsichtig werden.
Bisher geben ich dem Eintrag, der den Fokus verliert einfach eine anderer Hintergrundfarbe.
Ist es möglich die Hintergrundfarbe (des JLabels) wieder zu entfernen?
Oder kann man die Standard-Hintergrundfarbe des JPanels (auf dem liegt die Liste) erfragen (die es annimmt, wenn man ihm keine neue Farbe zuweist?)
Ich hoffe, ihr versteht, was ich meine.
Die einzelnen Zellen stelle ich als JLabels dar.
ich benutze für meine JList einen eigenen Renderer und möchte den Hintergrund des selektierten Objekts ändern.
Klicke ich nun auf ein anderers Element in der Liste, soll das zuvor ausgewählte Element seinen Hintergrund "wieder verlieren", also durchsichtig werden.
Bisher geben ich dem Eintrag, der den Fokus verliert einfach eine anderer Hintergrundfarbe.
Ist es möglich die Hintergrundfarbe (des JLabels) wieder zu entfernen?
Oder kann man die Standard-Hintergrundfarbe des JPanels (auf dem liegt die Liste) erfragen (die es annimmt, wenn man ihm keine neue Farbe zuweist?)
Ich hoffe, ihr versteht, was ich meine.
Die einzelnen Zellen stelle ich als JLabels dar.
Java:
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
String entry = (String) value;
setText(entry);
if (isSelected) {
setBackground(HIGHLIGHT_COLOR);
setForeground(Color.white);
} else {
setBackground(Color.white); // hier möchte ich eigentlich keine spezielle Farbe setzen
setForeground(Color.black);
}
setBorder(new EmptyBorder(6,20,6,20));
return this;
}
Zuletzt bearbeitet: