Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
530 views
in Technique[技术] by (71.8m points)

java - 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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Something like this works:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...