Hey.
Staram sie zrobic prosta animacje w programie wielowatkowym w javie, otoz po kazdej zmianie i rozpoczeciu nowego watku wczytywany byłby kolejny obraz (jpg) niestety problem jest w tym iz plik graficzny w ogóle sie nie odswieza (zamarzl). Bawil sie ktos moze w animacje w Javie? Jak to ugrysc?
.....
JTextArea output;
ImageIcon obraz;
......
/** klasa Kucharz */
class Kucharz implements Runnable
{
/** zasób Misjonarz */
Misjonarz misjonarz;
public int porcje;
/** konstruktor
* @param Misjonarz referencja do zasobu */
Kucharz(int porcje, Misjonarz misjonarz )
{
this.misjonarz = misjonarz;
this.porcje = porcje;
// uruchom wątek Kucharz
new Thread( this ).start();
}
/** metoda run wątku Kucharza
* Kucharz powinien
* - zabrac dostepnego Misjonarza
* - pokroic go na n czesci */
public void run()
{
/** "kroimy" misjonarzy **/
int iloscMisjonarzy = tab[1]; // brak w zalozeniach ilosci misjonarzy dlatego bedzie ich 7
for(int i=0;i<iloscMisjonarzy;i++)
{
/**Ustaw w kolejce Ludozercow**/
output.append("\nUstawiam nowa kolejke do zjedzenia..."+(int)(i+1)+" Misjonarza");
/** jesli pusty zasob to pokruj misjonarz*/
output.append("\nKroimy misjonarza na "+porcje+" porcji");
obraz = new ImageIcon("ikony/kot.jpg");
for( int j=1; j<=porcje; j++ )
misjonarz.put( j ); // kroimy na porcje misjonarza i wrzucamy do kotla
misjonarz.KucharzDone(); // misjonarz w calosci pokrojony
/** Kucharz przysypia */
if(!misjonarz.PorcjeEmpty)
try
{
Thread.sleep(200); // Usypianie watku kucharza
output.append("\nKucharz wstaje.");
}
catch( InterruptedException e )
{}
}
output.append("\nKONIEC gotowania");
obraz = new ImageIcon("ikony/kucharz1.jpg");
}
}
....
To oczywiscie jest fragment mojego programu, ale niestety utknalem przy obrazie (nie odswieza sie laduje pierwszy i nic innego nie chce isc)