2009-09-02 1 views
5

Ho un campo etichetta e tre pulsanti con il nome di rosso, giallo, blu. Se faccio clic sul pulsante rosso, il colore del carattere del campo etichetta deve essere modificato in rosso; allo stesso modo, se clicco sul pulsante giallo, il colore del carattere dovrebbe diventare giallo; allo stesso modo in base al colore del pulsante, il colore del carattere dovrebbe cambiare nel campo dell'etichetta.Come modificare dinamicamente il colore del carattere del campo etichetta blackberry?

Qualcuno può dirmi come si fa?

risposta

13

Colore carattere in labelField è di facile manutenzione impostando graphics.setColor sull'evento vernice prima 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

grazie utili – Kumar

+0

di coldice.It siete i benvenuti! –