2014-04-12 27 views
6

मुझे एक JScrollPane स्टाइल करने में परेशानी हो रही है। मैं सिर्फ अंगूठे और पृष्ठभूमि दोनों के रंग को बदलने में सक्षम होना चाहता हूं (और वृद्धि/कमी बटन भी हटाएं)।JScrollPane के अंगूठे रंग और पृष्ठभूमि रंग को बदलना?

this.setBackground(new Color(0,0,0)); 
    this.viewport.setBackground(new Color(0,0,0)); 
    this.getViewport().setBackground(Color.BLACK); 
    this.setOpaque(false); 
    this.getVerticalScrollBar().setUI(new BasicScrollBarUI() 
    { 
     @Override 
     protected JButton createDecreaseButton(int orientation) { 
      return createZeroButton(); 
     } 

     @Override  
     protected JButton createIncreaseButton(int orientation) { 
       return createZeroButton(); 
     } 
     @Override 
     protected void configureScrollBarColors(){ 

     } 

    }); 

    this.getHorizontalScrollBar().setUI(new BasicScrollBarUI() 
    { 
     @Override 
     protected JButton createDecreaseButton(int orientation) { 
      return createZeroButton(); 
     } 

     @Override  
     protected JButton createIncreaseButton(int orientation) { 
       return createZeroButton(); 
     } 


    }); 
} 
private JButton createZeroButton() { 
    JButton jbutton = new JButton(); 
    jbutton.setPreferredSize(new Dimension(0, 0)); 
    jbutton.setMinimumSize(new Dimension(0, 0)); 
    jbutton.setMaximumSize(new Dimension(0, 0)); 
    return jbutton; 
} 

इसके अलावा

UIManager.put("ScrollBar.trackHighlightForeground", (new Color(57,57,57))); 
    UIManager.put("scrollbar", (new Color(57,57,57))); 
    UIManager.put("ScrollBar.thumb", new ColorUIResource(new Color(57,57,57))); 
    UIManager.put("ScrollBar.thumbHeight", 2); 
    UIManager.put("ScrollBar.background", (new Color(57,57,57))); 
    UIManager.put("ScrollBar.thumbDarkShadow", new ColorUIResource(new Color(57,57,57))); 
    UIManager.put("ScrollBar.thumbShadow", new ColorUIResource(new Color(57,57,57))); 
    UIManager.put("ScrollBar.thumbHighlight", new ColorUIResource(new Color(57,57,57))); 
    UIManager.put("ScrollBar.trackForeground", new ColorUIResource(new Color(57,57,57))); 
    UIManager.put("ScrollBar.trackHighlight", new ColorUIResource(new Color(57,57,57))); 
    UIManager.put("ScrollBar.foreground", new ColorUIResource(new Color(57,57,57))); 
    UIManager.put("ScrollBar.shadow", new ColorUIResource(new Color(57,57,57))); 
    UIManager.put("ScrollBar.highlight", new ColorUIResource(new Color(57,57,57))); 
ऊपर कोड मैं एक सफेद पृष्ठभूमि के साथ एक अन्धेरा अंगूठे मिल के सभी के साथ

: अब तक मैं निम्नलिखित की कोशिश की है। अगर मैं setUI फ़ंक्शंस को हटा देता हूं तो मुझे काफी हद तक पर्याप्त लगता है, मुझे एक अंधेरे पृष्ठभूमि के साथ एक डिफ़ॉल्ट अंगूठा मिलता है ..

कोई विचार?

धन्यवाद


हल ** * ** *


configureScrollBarColors समारोह ऊपर निम्नलिखित तरीके से इस्तेमाल किया जा सकता:

@Override 
     protected void configureScrollBarColors(){ 
      this.thumbColor = Color.GREEN; 
     } 

जो अंगूठे के रंग को हरे रंग में बदल देता है।

उत्तर

1

शायद ज़रुरत पड़े कोई वहाँ अभी भी इस सूत्र मदद की तलाश पर गिर रही है:

निम्न पंक्ति अपने स्क्रॉलबार की देखने के लिए बदलने के लिए इस्तेमाल किया जा सकता। "_" वर्णों से घिरे फ़ील्ड को बदला जा सकता है (कुंजी और रंग)।

UIManager.put("ScrollBar._key_", new ColorUIResource(_COLOR_)); 

अपने बार का रंग बदलने के लिए सबसे अधिक प्रासंगिक चाबियाँ हैं:

  • thumb (अंगूठे के सामान्य रंग)
  • thumbDarkShadow (शेष अंगूठे का छाया हिस्सा)
  • thumbShadow (अनिवार्य रूप से अंगूठे के लिए एक सीमा जो हाइलाइट के साथ आधा भाग में विभाजित है)
  • thumbHighlight (कहा सीमा के दूसरे भाग कीतरह)
  • track (पृष्ठभूमि)

तो एक उदाहरण होगा:

UIManager.put("ScrollBar.thumb", new ColorUIResource(Color.black)); 

यह अंगूठे का मुख्य हिस्सा काला होगा।

यदि आप एक पूर्ण एकल रंग अंगूठे के लिए जा रहे हैं तो ट्रैक को छोड़कर सभी कुंजियों का उपयोग करें और उन्हें एक ही रंग में सेट करें।

यदि आप एक रूपरेखा के लिए जा रहे हैं तो पहले दो रंग 1 और रंग 2 के रूप में दूसरे दो सेट करें।

मैं अपने स्वयं के जीयूआई को सुधारने की कोशिश करते समय इस पर गिर गया और कुछ मामूली tweaking विचार के बाद मैं अपने निष्कर्ष साझा करना होगा।

For more keys click me!

संबंधित मुद्दे