Deaktivieren einzelner JComboBox-Elemente

Dies ist ein ziemlich häufiges Problem, und die von mir verwendete Lösung ähnelt derwas ich gesucht habe und später gefunden. Man setzt einListCellRenderer mit einerJLabel das aktiviert oder deaktiviert sich basierend auf dem aktuell ausgewählten Index:

public Component getListCellRendererComponent(JList list, Object value,
        int index, boolean isSelected, boolean cellHasFocus) {
    setText(value.toString());
    UIDefaults defaults = UIManager.getDefaults();
    Color fc;
    if (index == 1) {
        setEnabled(false);
        fc = defaults.getColor("Label.disabledForeground");
        setFocusable(false);
    } else {
        // fc = defaults.getColor("Label.foreground");
        fc = list.getForeground();
        setEnabled(list.isEnabled());
        setFocusable(true);
    }
    setForeground(fc);
    setBackground(isSelected ? list.getSelectionBackground() : list
            .getBackground());
    return this;
}

Das Problem ist, dass das Listenelement, obwohl es optisch als deaktiviert angezeigt wird, trotz der Option ausgewählt werden kannsetFocusable Anruf. Wie deaktiviere ich es eigentlich?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage