2009-09-02 11 views
5

मेरे पास एक लेबल फ़ील्ड और लाल, पीले, नीले रंग के नाम के साथ तीन बटन हैं। अगर मैं लाल बटन पर क्लिक करता हूं तो लेबल फ़ील्ड फ़ॉन्ट रंग लाल रंग में बदला जाना चाहिए; इसी तरह यदि मैं पीले बटन पर क्लिक करता हूं तो फ़ॉन्ट रंग पीले रंग में बदलना चाहिए; इसी प्रकार बटन रंग के अनुसार लेबल फ़ील्ड में फ़ॉन्ट का रंग बदलना चाहिए।गतिशील रूप से ब्लैकबेरी लेबल फ़ील्ड का फ़ॉन्ट रंग कैसे बदलें?

क्या कोई मुझे बता सकता है कि यह कैसे करें?

उत्तर

13

LabelField में फ़ॉन्ट रंग आसानी से रंग घटना पर graphics.setColor की स्थापना super.paint से पहले से बनाए रखा है:

class FCLabelField extends LabelField { 
     public FCLabelField(Object text, long style) { 
      super(text, style); 
     } 

     private int mFontColor = -1; 

     public void setFontColor(int fontColor) { 
      mFontColor = fontColor; 
     } 

     protected void paint(Graphics graphics) { 
      if (-1 != mFontColor) 
       graphics.setColor(mFontColor); 
      super.paint(graphics); 
     } 
    } 

    class Scr extends MainScreen implements FieldChangeListener { 
     FCLabelField mLabel; 
     ButtonField mRedButton; 
     ButtonField mGreenButton; 
     ButtonField mBlueButton; 

     public Scr() { 
      mLabel = new FCLabelField("COLOR LABEL", 
        FIELD_HCENTER); 
      add(mLabel); 
      mRedButton = new ButtonField("RED", 
        ButtonField.CONSUME_CLICK|FIELD_HCENTER); 
      mRedButton.setChangeListener(this); 
      add(mRedButton); 
      mGreenButton = new ButtonField("GREEN", 
        ButtonField.CONSUME_CLICK|FIELD_HCENTER); 
      mGreenButton.setChangeListener(this); 
      add(mGreenButton); 
      mBlueButton = new ButtonField("BLUE", 
        ButtonField.CONSUME_CLICK|FIELD_HCENTER); 
      mBlueButton.setChangeListener(this); 
      add(mBlueButton); 
     } 

     public void fieldChanged(Field field, int context) { 
      if (field == mRedButton) { 
       mLabel.setFontColor(Color.RED); 
      } else if (field == mGreenButton) { 
       mLabel.setFontColor(Color.GREEN); 
      } else if (field == mBlueButton) { 
       mLabel.setFontColor(Color.BLUE); 
      } 
      invalidate(); 
     } 
    } 
+0

धन्यवाद coldice.It के सहायक – Kumar

+0

आपका स्वागत है! –

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