загрузка Image в приложении
От: ssy Россия  
Дата: 19.09.02 07:20
Оценка:
Привет.
Возникла такая проблема: надо последовательно выводить несколько картинок на экран, и эту процедуру повторить нужное число раз. Картинки в формате JPG. Для этого я написал следующий класс:

class ImagePanel extends Panel implements Runnable {

private int c, c1;

public ImagePanel() {
super();
setSize(new Dimension(300, 200));
}

public void paint(Graphics g) {
c1++;
if (image != null) {
int x = 100;
int y = 0;
if (g.drawImage(image, x, y, this)) c++;
}
}

public void run() {
Toolkit toolkit = Toolkit.getDefaultToolkit();
c = 0; c1 = 0;
long start = System.currentTimeMillis();
try {
for (int i = 0; i < count; i++) {
for (int j = 0; j < number; j++) {
image = toolkit.getImage(list[j]);
repaint();
Thread.sleep(90);
}
}
} catch (Exception e) { }
long stop = System.currentTimeMillis();
ms = stop — start;
}
}

Проблема вот в чем: мне, в принципе, не нужна пауза на каждой итерации цикла. Но если я убираю Thread.sleep(90), то в результате я вижу только одну картинку и значения переменных c1 и с (сколько раз вызван paint() и сколько было удачных отрисовок) равны соответственно 4;3 или 9;8, хотя я вывожу 14 картинок 10 раз. А ведь должно быть c=140 !!!
Как быть? Где я не прав?
Заранее спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.