Как вы измените границу всплывающего раздела JComboBox? - PullRequest
1 голос
/ 17 февраля 2012

Я не хочу менять границу всплывающей / выделенной части JComboBox.

Обратите внимание, что пользовательский интерфейс BasicComboBoxUI

Я пробовал:

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

но это дало мне это: enter image description here

и:

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

но это дало мне это: enter image description here

то, что я не хочу, эточто-то вроде этого: (это было сделано в фотошопе) enter image description here Я не возражаю, если это не совсем то же самое, я просто не хочу быть похожим.

У кого-нибудь есть идеи, как это сделать?

1 Ответ

2 голосов
/ 17 февраля 2012

Примерно так работает:

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