ładowanie obrazków, progress...

0

Ciężko było znaleŹć forum javy wśród innych, ale udało się :]
Piszę applet wykorzystujący dość dużo obrazków, chcę aby podczas ładowania ich był pokazywany pasek postępu, nie wiem nawet czy dobrze ładuję te obrazki... z dysku chodzi, ze strony też, ale moje próby zrobienia progress bar'a nie...
na początku oczwiście dekleracja zmiennych:

uczen=new Image[41];
private Font imie;
boolean loading;
int progress;
//i ich inicjacja w init
uczen=new Image[41];
imie = new Font("Arial", Font.BOLD, 20);

tak wygląda ładowanie obrazków i początek i koniec progress bar'a:

loading=true;
...
	progress=progress+12;
	uczen[3]=getImage(getDocumentBase(),"nk/aga.jpg");
	progress=progress+12;
	uczen[4]=getImage(getDocumentBase(),"nk/benek.jpg");
	progress=progress+12;
	uczen[5]=getImage(getDocumentBase(),"nk/sylwia.jpg");
...
gDC = getGraphics();
...
loading=false;

jest to w funkcji start,
w funkcji draw, która jest też wywoływana w funkcji paint dałem takie coś:

	if (loading)
	{
	gDC.setColor(Color.white);
	gDC.setFont(imie);
	gDC.drawString("czekaj... trwa ładowanie plików...",100,200);
	gDC.setColor(Color.blue);
	gDC.fillRect(0, 300, progress, 350);
	}
else
{
/// kod programu po załadowaniu wszystkich plików
}

Intencją jest by przy pomocy progress bar'a załadować wszystkie obrazki do pamięci (czy jak tam to się nazywa w javie :P ) by potem przy ich wyświetlaniu nie trzeba było czekać na załadowanie...
Z góry dzięki za wszelkie odpowiedzi :)

0

A ten-tego... Jakiś update tego - timer czy coś - masz??

0

nie, żadnego timer'a, ani update'a nie mam, to ma być prosty sposób ;)
dałoby się tak jak ja zacząłem ?? tylko jakoś naprawić :)
chyba, że to konieczne by użyć timer'a itp... to prosiłbym o jakieś wskazówki/opis - co zrobić ;)
może po prostu do innych zdarzeń powinienem coś dać ?
tylko jakich ?

0
Talib napisał(a)

nie, żadnego timer'a, ani update'a nie mam, to ma być prosty sposób ;)
dałoby się tak jak ja zacząłem ?? tylko jakoś naprawić :)
chyba, że to konieczne by użyć timer'a itp... to prosiłbym o jakieś wskazówki/opis - co zrobić ;)
może po prostu do innych zdarzeń powinienem coś dać ?
tylko jakich ?

Nie wiem jak masz ten program zaprojektowany, ale może po każdym załadowaniu obrazka wywołaj - napisaną przez siebie - metodę, która odpowiednio zwiększy progress i odmaluje go, np:

//...
uczen[3]=getImage(getDocumentBase(),"nk/aga.jpg");
advanceProgress(l2);
//...

// metoda w klasie, która trzyma progress i rysuje, albo zmien to tak,
// zeby pasowalo do twojego projektu.
void advanceProgress(int l2)
{
    progress += l2;
    repaint(); // może update() ? nie wiem jak wyglada twoj program
}

Czy nawet pojedyncze ładowanie wrzucic do oddzielnej metody...

1 użytkowników online, w tym zalogowanych: 0, gości: 1