Заполнение прямоугольника - Метод краски (MIDP)
Вопрос
Я пытаюсь медленно покрасить прямоугольник, используя два вызова метода. Что происходит, так это то, что метод сна вызывается до того, как инициализируется прямоугольник, поэтому, похоже, что прямой вариант уже был нарисован. Я просто хочу нарисовать часть рекса, паузу в течение пяти секунд, а затем покрасить антиоборотную часть.
Вот мой код -
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);
}
Спасибо
Решение
Это всегда очень плохая идея, чтобы заблокировать потока событий, независимо от того, какая платформа.
То, что вы должны делать, - это определение переменных где -то, которые хранят текущую степень области, которую вы хотите нарисовать. Обновите эти переменные в отдельном потоке (вы можете заблокировать этот поток все, что вы хотите) и вызовите метод Repaint (), чтобы запланировать перекрашение при обновлении переменных.