2010-06-09 9 views
13

में तीर शैली को कैसे बदल सकता हूं मान लें कि मैं जेसीम्बोबॉक्स में तीर के लिए एक कस्टम छवि का उपयोग करना चाहता हूं, मैं यह कैसे कर सकता हूं?मैं 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

मेरे लिए ... जेबीटन को जेकंपोनेंट के रूप में JComboponox और button.setIcon(), f.e. से निकालने के लिए सबसे सुरक्षित है। JComboBox के लिए माउसहोवर प्रभाव के लिए बटनमोडेल के साथ .. BasicUI – mKorbel