Background color of the selected item in an uneditable JComboBox

前端 未结 3 464
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-02 00:20

The background color of the selected item in an uneditable JComboBox is a sort of blue:

\"alt

Is

3条回答
  •  执笔经年
    2020-12-02 00:58

    The background assigned by the renderer is overriden by the selection background color of the JList that is used in the popup for the combo box. Check out the "paintCurrentValue" method of the BasicComboBoxUI class. So the workaround would be:

    JComboBox comboBox = new JComboBox(...);
    Object child = comboBox.getAccessibleContext().getAccessibleChild(0);
    BasicComboPopup popup = (BasicComboPopup)child;
    JList list = popup.getList();
    list.setSelectionBackground(Color.RED);
    

    This will affect the rendering of the popup as well. If you don't want it to affect the popup then you will need to create a custom renderer to specifically set the background of selected items.

提交回复
热议问题