How do I update blackberry UI items from a thread?

Posted by Andrei T. Ursan on Stack Overflow See other posts from Stack Overflow or by Andrei T. Ursan
Published on 2010-04-02T22:13:03Z Indexed on 2010/04/02 22:43 UTC
Read the original article Hit count: 330

Filed under:
|
|
public class PlayText extends Thread {

   private int duration;
   private String text;
   private PlayerScreen playerscrn; 

   public PlayText(String text, int duration) {
        this.duration = duration;
        this.text = text;
        this.playerscrn = (PlayerScreen)UiApplication.getUiApplication().getActiveScreen();
   }



    public void run() {
        synchronized(UiApplication.getEventLock()) {
            try{
                RichTextField text1player = new RichTextField(this.text, Field.NON_FOCUSABLE);
                playerscrn.add(text1player);
                playerscrn.invalidate();

                Thread.sleep(this.duration);

                RichTextField text2player = new RichTextField("hahhaha", Field.NON_FOCUSABLE);
                playerscrn.add(text2player);
                playerscrn.invalidate();

                Thread.sleep(1000);
                RichTextField text3player = new RichTextField("Done", Field.NON_FOCUSABLE);
                playerscrn.add(text3player);
                playerscrn.invalidate();

            }catch(Exception e){
             System.out.println("I HAVE AN ERROR");
            }   
        }
    }
}

With the above code I'm trying to create a small text player.
Instead to get all the text labels one by one, something like

display text1player
wait this.duration milliseconds
display text2player
wait 1000 milliseconds
display text3player
thread done.

The screens waits this.duration + 1000 milliseconds and displays all the labels at once. I tried with a runnable and calling .invokeLater or .invokeAndWait but I still get the same behavior, and even if I get dirty like above using synchronized it still doesn't work.
Does anyone know how I can display each label at a time?
Thank you!

© Stack Overflow or respective owner

Related posts about blackberry

Related posts about threads