Hallo zusammen!
Ich möchte die Einträge in einer ComboBox farbig unterscheiden.
Die ComboBox enthält die Einträge "A", "B" bis "F" und jeder einzelne Eintrag wird mit einer anderen Schriftfarbe dargestellt. Das habe ich mit einem ListCellRenderer realisiert. Funktioniert auch ohne Probleme, nur dass der ausgewählte Eintrag (der im Hauptfeld) dann wieder mit Schriftfarbe schwarz gezeichnet wird.
Wie bekomme ich das hin, dass der ausgewählte Eintrag dann auch in der entsprechenden Farbe gezeichnet wird?
Gruß,
tabina
Ich möchte die Einträge in einer ComboBox farbig unterscheiden.
Die ComboBox enthält die Einträge "A", "B" bis "F" und jeder einzelne Eintrag wird mit einer anderen Schriftfarbe dargestellt. Das habe ich mit einem ListCellRenderer realisiert. Funktioniert auch ohne Probleme, nur dass der ausgewählte Eintrag (der im Hauptfeld) dann wieder mit Schriftfarbe schwarz gezeichnet wird.
Code:
class LabelCellRenderer extends JLabel implements ListCellRenderer
{
protected DefaultListCellRenderer defaultRenderer = new DefaultListCellRenderer();
@Override
public Component getListCellRendererComponent(JList list, Object value, int index,
boolean isSelected, boolean cellHasFocus)
{
JLabel renderer = (JLabel) defaultRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
Color foreground = PolygonDialog.getColorForLabel((String) value);
renderer.setForeground(foreground);
list.setForeground(foreground);
return renderer;
}
}
Wie bekomme ich das hin, dass der ausgewählte Eintrag dann auch in der entsprechenden Farbe gezeichnet wird?
Gruß,
tabina