2009-09-02 7 views
5

J'ai un champ d'étiquette et trois boutons avec le nom de rouge, jaune, bleu. Si je clique sur le bouton rouge, alors la couleur de police du champ d'étiquette devrait être rouge; de même si je clique sur le bouton jaune alors la couleur de police devrait changer en jaune; De même, selon la couleur du bouton, la couleur de la police devrait changer dans le champ de l'étiquette.Comment changer dynamiquement la couleur de police du champ d'étiquette blackberry?

Quelqu'un peut-il me dire comment faire cela?

Répondre

13

couleur de police dans LabelField est facilement maintenu en réglant graphics.setColor sur l'événement de peinture avant 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

merci utile de coldice.It – Kumar

+0

Vous êtes les bienvenus! –

Questions connexes