Catalyst Combo Box UI

If setting fonts, colors, and borders doesn't suffice...

ComboBoxUI
+ ComboBoxUI()
+ isFocusTraversable(JComboBox) : boolean
+ isPopupVisible(JComboBox) : boolean
+ setPopupVisible(JComboBox, boolean)
ComponentUI
+ ComponentUI()
+ createUI(JComponent) : ComponentUI
+ getMaximumSize(JComponent) : Dimension
+ getMinimumSize(JComponent) : Dimension
+ getPreferredSize(JComponent) : Dimension
+ installUI(JComponent)
+ paint(Graphics, JComponent)
+ update(Graphics, JComponent)
BasicComboBoxUI
# currentValuePane : CellRendererPane
# editor : Component
# arrowButton : JButton
# popup : ComboPopup
# listBox : JList
+ BasicComboBoxUI()
+ createUI(JComponent) : ComponentUI
+ installUI(JComponent)
+ paintCurrentValue(Graphics, Rectangle)
CatalystComboBoxUI
+ CatalystComboBoxUI()
# createEditor() : ComboBoxEditor
# createLayoutManager() : LayoutManager
# createRenderer() : ListCellRenderer
# installKeyboardActions()
+ createUI(JComponent) : ComponentUI
+ installUI(JComponent)
+ paintCurrentValue(Graphics, Rectangle)
CatalystComboBoxRenderer
+ CatalystComboBoxRenderer()
+ getListCellRendererComponent(JList, ...
+ getPreferredSize() : Dimension

...you may have to create your own Component UI.

public class CatalystComboBoxUI extends BasicComboBoxUI {

    public static ComponentUI createUI(JComponent c) {
        return new CatalystComboBoxUI();
    }

    public void installUI(JComponent c) {
        super.installUI(c);
        comboBox.setBackground(CatalystTheme.white);
        comboBox.setForeground(CatalystTheme.black);
        comboBox.setRequestFocusEnabled(true);
    }

    protected ComboBoxEditor createEditor() {
        return new BasicComboBoxEditor.UIResource() {
            public void setItem(Object item) {
                super.setItem(item);
                editor.selectAll();
            }
        };
    }

    protected ListCellRenderer createRenderer() {
        return new CatalystComboBoxRenderer();
    }
public class CatalystComboBoxRenderer extends JLabel 
                implements ListCellRenderer {

    public CatalystComboBoxRenderer() {
        setOpaque(true);
        setBorder(createEmptyBorder(1, 3, 1, 1));
    }

    public Component getListCellRendererComponent
                (JList list, Object value, int index, 
                 boolean isSelected, boolean cellHasFocus) {

        setFont(list.getFont());
        setText((value == null) ? "" : value.toString());

        if (isSelected) {
            setBackground(CatalystTheme.listBlue);
            setForeground(CatalystTheme.blue);
        } else {
            setBackground(CatalystTheme.blue);
            setForeground(CatalystTheme.black);
        }

        return this;
    }