2012-02-17 9 views
1

JComboBoxのポップアップ/選択部分の境界を変更することはできません。JComboBoxのポップアップセクションの境界をどのように変更しますか?

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); 
     } 
    } 

をそれが与えたUIは、私が試した

BasicComboBoxUI内

ある

注意私:enter image description here

私はこのようなものではありません:(これはPhotoshopで行われました) enter image description hereまったく同じでない場合は気にしません。私はそれほど似ていません。

誰でもこれを行う方法に関するアイデアはありますか?このような

+0

素敵な質問1 – mKorbel

答えて

2

何かが動作します:

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

うわー、それは私は一つのことを(編集を見て) – Russell

+0

FWIW、私はsetBorder()を呼び出す必要があった変更一度働いBasicComboPopup自体に - リストにはありません。 – stacktracer

関連する問題