Russell
Russell

Reputation: 805

How do you change border of the pop up section of a JComboBox?

I wan't to change the border of the popup/selection part of the JComboBox.

Note that the UI is BasicComboBoxUI

I've tried:

weaponCB.setRenderer(new DefaultListCellRenderer() {
        @Override
        public void paint(Graphics g) {
       setBorder(whiteBorder)
//whiteBorder is a white border             
       super.paint(g);
        }
    });

but it gave me this: enter image description here

and:

    for (int i=0; i<weaponCB.getComponentCount(); i++)
    {
        if (weaponCB.getComponent(i) instanceof AbstractButton)
        {
            ((AbstractButton)weaponCB.getComponent(i)).setBorder(whiteBorder);
        }
    }

but it gave me this:enter image description here

what i wan't is something like this: (it was done in photoshop) enter image description here I don't mind if it's not exactly the same, I just wan't it similar.

does anyone have any ideas on how to do this?

Upvotes: 1

Views: 1408

Answers (1)

camickr
camickr

Reputation: 324197

Something like this works:

Object child = comboBox.getAccessibleContext().getAccessibleChild(0);
BasicComboPopup popup = (BasicComboPopup)child;
JList list = popup.getList();
list.setBorder( whiteBorder );

Upvotes: 2

Related Questions