как изменить цветовую схему базового ComboBoxUI?

Как изменить цветовую схему базового пользовательского интерфейса ComboBox? Я пробовал: setForeGround, setBackground, setOpaque (true), setOpaque (false) setBorder. Но ничего из этого не работает.

Мой код прямо сейчас:

    weaponCB.setBounds(27,250,150,30);
    weaponCB.setUI(new BasicComboBoxUI());
    weaponCB.setForeground(Color.white);
    weaponCB.setBackground(Color.black);
    weaponCB.setBorder(whiteBorder);
    weaponCB.setFont(new Font("Trajan Pro", Font.BOLD, 15));
    lP.add(weaponCB, new Integer(2));

Вот что появляется:

введите описание изображения здесь

Но на самом деле я хочу, чтобы раскрывающийся список (белая область) выглядел как дисплей (черная область с LANCE в белом), т.е. чтобы фон был черным, граница была белой, а слова были белыми. Если это возможно, и вы скажете мне, как это сделать, это было бы для меня большим подспорьем. Спасибо.


person Russell    schedule 14.02.2012    source источник


Ответы (1)


Очень странно, но когда я ставлю weaponCB.setUI (новый BasicComboBoxUI ()); под setBackground, setForeground и setBorder поле со списком работает должным образом. Только граница не отображается.

    weaponCB.setBounds(27,250,150,30);
    weaponCB.setForeground(Color.white);
    weaponCB.setBackground(Color.black);
    weaponCB.setBorder(whiteBorder);
    weaponCB.setFont(new Font("Trajan Pro", Font.BOLD, 15));
    lP.add(weaponCB, new Integer(2));
    weaponCB.setUI(new BasicComboBoxUI());

введите описание изображения здесь

Еще одна вещь, которая сработала:

@Override
            public void paint(Graphics g) {
                setBackground(Color.black);
                setForeground(Color.white);
                super.paint(g);
            }
        });
person Russell    schedule 14.02.2012