2012-09-13 2 views

Répondre

2

Étendre la classe LabelField et remplacer sa méthode paint(Graphics g) pour dessiner/effacer du texte lors d'appels consécutifs.

Ensuite, implémentez un TimerTask et lancez-le avec l'instance de classe Timer.

Cette tâche doit régulièrement invalider votre champ d'étiquette personnalisée, par exemple - pour chaque seconde.

invalidate() l'appel entraînera le repeint du champ et le texte de l'étiquette clignotera.

+0

u peut donner un exemple pour that.iam nouveau pour le développement d'applications blackbeery – user1213202

2

Si vous ne souhaitez pas étendre LabelField, vous pouvez planifier un TimerTask qui définira un texte vide et un texte original sur l'instance LabelField à plusieurs reprises. Dans ce cas, l'étendue du LabelField sera modifiée chaque fois que le texte sera modifié. Donc, ce answer semble le plus parfait pour moi. Vérifiez un brouillon (non compilé, non testé) de la mise en œuvre de cette réponse.

LabelField modification

LabelField lbl = new LabelField() { 
    private boolean blinkFlag = false; 

    protected void paint(Graphics g) { 
     blinkFlag = !blinkFlag; 
     if (blinkFlag == false) { 
      super.paint(g); 
     } 
    } 
}; 

Planification d'une TimerTask

final int blinkInterval = 1000; 

TimerTask blinkTask = new TimerTask() { 
    public void run() {  
     UiApplication.getUiApplication().invokeLater(new Runnable() { 
      public void run() { 
       lbl.invalidate(); 
      }); 
     } 
    } 
}; 


(new Timer()).schedule(blinkTask , blinkInterval); 
Questions connexes