2009-09-02 20 views
5

Tengo un campo de etiqueta y tres botones con el nombre de rojo, amarillo, azul. Si hago clic en el botón rojo, el color de la fuente del campo de la etiqueta debe cambiar a rojo; de manera similar, si hago clic en el botón amarillo, el color de la fuente debe cambiar a amarillo; Asimismo, de acuerdo con el color del botón, el color de la fuente debe cambiar en el campo de la etiqueta.¿Cómo cambiar el color de la fuente del campo de la etiqueta de Blackberry dinámicamente?

¿Alguien me puede decir cómo hacerlo?

Respuesta

13

Color de fuente en LabelField es de fácil mantenimiento mediante el establecimiento de graphics.setColor en el evento de pintura antes de 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

gracias útiles – Kumar

+0

de coldice.It De nada! –

Cuestiones relacionadas