Hallo,
ich habe mir folgenden ListCellRenderer geschrieben:
und zwar um zu lange Einträge mehrzeilig darzustellen. Das funktioniert auch wunderbar.
Allerdings stimmt bei dem HTML-Text die Farbe bei der Selektierung nicht mehr. Heißt das, ich muss jetzt in meiner Abfrage nochmal isSelected abfragen und dann die HTML-Tags für die Farbe mit dazuschreiben oder geht das auch einfacher?
Gruß GG
ich habe mir folgenden ListCellRenderer geschrieben:
Code:
class MyListCellRenderer extends DefaultListCellRenderer
implements ListCellRenderer{
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
setBackground(list.getBackground());
setForeground(list.getForeground());
if (value instanceof String){
String line = (String)value;
if (line.length()>80){
StringBuilder sb = new StringBuilder("<html>");
sb.append(line);
for (int i = 80; i < sb.length(); i+=80){
int j = sb.indexOf(" ", i);
if (j > -1)
sb.insert(j, "
");
}
sb.append("</html>");
line = sb.toString();
}
setText(line);
}
if (isSelected){
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
}
return this;
}
}
Allerdings stimmt bei dem HTML-Text die Farbe bei der Selektierung nicht mehr. Heißt das, ich muss jetzt in meiner Abfrage nochmal isSelected abfragen und dann die HTML-Tags für die Farbe mit dazuschreiben oder geht das auch einfacher?
Gruß GG