Sascha's Wiki

JList mit farbigem Text erstellen

Um den Text in einer JList farbig darzustellen, muss man nur ähnlich wie bei JList mit Icons erstellen einen ListCellRenderer erzeugen und diesen modifizieren.

import java.awt.Color;
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
import javax.swing.UIManager;

/**
 *
 * @author Changer <admin@swechsler.de>
 * @date Feb 18, 2014
 * @time 1:19:54 PM
 *
 */
public class PatchCellRenderer extends JLabel implements ListCellRenderer {

    @Override
    public Component getListCellRendererComponent(JList list, 
        Object value, int index, boolean isSelected, boolean cellHasFocus) {
    
        PatchModel patch = (PatchModel) value;

        this.setText(patch.getItemName());

        //Dringend notwendig um Foreground oder Background zu setzen
        this.setOpaque(true);

        //Unterscheiden zwischen ausgewähltem und nicht ausgewähltem Item
        if (isSelected) {
            this.setForeground(UIManager.getColor("List.selectionForeground"));
            this.setBackground(UIManager.getColor("List.selectionBackground"));
        } else {
            this.setForeground(Color.red);
            this.setBackground(UIManager.getColor("List.background"));
        }
        return this;
    }
}

java/allgemein/jlist-textfarbe.txt · Zuletzt geändert: 2016/04/21 09:15 (Externe Bearbeitung)