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

别说谁变了你拦得住时间么 提交于 2019-12-18 09:21:50

问题


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:

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:

what i wan't is something like this: (it was done in photoshop)

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?


回答1:


Something like this works:

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


来源:https://stackoverflow.com/questions/9322903/how-do-you-change-border-of-the-pop-up-section-of-a-jcombobox

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!