Bonjour,
Je viens d'écrire une extension du BasicComboBoxUI pour avoir une drop-down hyper basic: un Jlabel comme renderer et une simple petite flèche en guise bouton pour le popup.
Mon problème est que je n'arrive pas à faire prendre des couleurs à mon renderer: il reste obstinément blanc.

Voici le code du UI:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
public class FlatComboUI extends BasicComboBoxUI {
 
    public FlatComboUI(JComponent component) {
        super();
    }
 
    @Override
    public void installUI(JComponent c) {
        super.installUI(c);
        comboBox.setBorder(null);
 
    }
 
    @Override
    protected ListCellRenderer createRenderer() {
        return new FlatComboRenderer((clFlatComboBox)comboBox);
    }
 
    public static ComponentUI createUI(JComponent c) {
        return new FlatComboUI(c);
    }
 
    @Override
    protected JButton createArrowButton() {
        return new FlatComboArrowButton((clFlatComboBox) comboBox);
    }
 
    /**
     *  Un render sous forme de Jlabel
     */
    private class FlatComboRenderer implements ListCellRenderer {
 
        private JLabel editor ;
        private clFlatComboBox comboBox;
        private Color selectedBackground;
 
        public FlatComboRenderer(clFlatComboBox comboBox) {
            this.comboBox = comboBox;
            editor= new JLabel();
            editor.setBorder(null);
            selectedBackground = (Color) UIManager.getDefaults().get("ComboBox.selectionBackground");
        }
 
        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
            editor.setText(value.toString());
            if (cellHasFocus) editor.setBackground(selectedBackground); else editor.setBackground(Color.cyan); //comboBox.getBackground());
            return editor;
        }
    }
 
    private class FlatComboArrowButton extends JButton {
    ...
Dans le code j'essaye de le forcer à cyan pour voir ce que ça donner, mais ça ne donne rien. Idéalement, j'aimerais avoir la couleur qui a été spécifiée pour le JComboBox. Etrangement, et sans que je ne fasse rien, la partie bouton à la bonne couleur.

Merci pour vos suggestions.