Заполнение прямоугольника - метод рисования (MIDP) - PullRequest
2 голосов
/ 25 января 2011

Я пытаюсь медленно нарисовать прямоугольник, используя два вызова метода .fillrect с вызовом Thread.sleep между каждым методом. Происходит то, что метод sleep вызывается до инициализации прямоугольника, поэтому кажется, что прямоугольник уже нарисован. Я просто хочу нарисовать часть прямоугольника, сделать паузу на пять секунд, а затем нарисовать другую часть.

Вот мой код -

public void paint(Graphics g, int w, int h) {
    g.drawRect(0, 0, w - 1, h - 1);
    g.fillRect(0, 0, 10, h-1);

   try {
    Thread.sleep(5000);
} catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

    g.fillRect(0, 0, 50, h-1);
 }

Спасибо

1 Ответ

1 голос
/ 25 января 2011

Всегда очень ПЛОХАЯ идея блокировать поток событий, независимо от платформы.

Что вам нужно сделать, это определить где-нибудь переменные, которые хранят текущий экстент области, которую вы хотите закрасить,Обновите эти переменные в отдельном потоке (вы можете заблокировать этот поток сколько угодно) и вызовите метод repaint (), чтобы запланировать перерисовку при каждом обновлении переменных.

...