2010-06-09 5 views
13

JComboBox의 화살표에 맞춤 이미지를 사용하고 싶습니다. 어떻게해야합니까?JComboBox에서 화살표 스타일을 변경하는 방법

synth xml 파일을 사용하거나 UIManager.put (...)을 사용하는 것이 가능하다는 것을 알고 있지만 어떻게해야할지 모르겠다. 이 시점에서 내가하고 싶은 것은 화살 이미지를 다른 것으로 바꾸는 것입니다. 프로그램 적으로 또는 사용하는 이미지를 재정의하는 것입니다. 내가 정확히 이것을 어떻게 할 수 있을까?

답변

19

createArrowButton()BasicComboBoxUI으로 대체 할 수 있습니다. BasicArrowButton은 편리한 출발점입니다.

class ColorArrowUI extends BasicComboBoxUI { 

    public static ComboBoxUI createUI(JComponent c) { 
     return new ColorArrowUI(); 
    } 

    @Override protected JButton createArrowButton() { 
     return new BasicArrowButton(
      BasicArrowButton.SOUTH, 
      Color.cyan, Color.magenta, 
      Color.yellow, Color.blue); 
    } 
} 

그런 다음 설치하십시오.

JComboBox combo = new JComboBox(); 
combo.setUI(ColorArrowUI.createUI(combo)); 
+0

화려한 색 구성표에 대해 책임지지 않습니다. :-) – trashgod

+0

완벽한 !! 대단히 감사합니다 :) 나를 위해 –

+1

... 아마 JComboBox 및 button.setIcon()에서 JComponent로 JButton을 추출하는 것이 안전합니다. JComboBox에 대한 mousehover 효과를위한 ButtonModel도 있습니다. BasicUI 용 +1 – mKorbel