Animacja i watki.

Odpowiedz Nowy wątek
2006-08-08 21:31
0

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)

Pozostało 580 znaków

2006-08-08 21:43
0

Kiedys pisalem jakas animacje, ale to juz dawno, moge Ci udostepnic klasy tej animacji. Jest tam klasa SimpleScreenManager - ta klasa w animacji nic nie znaczy, to jest tylko przejscie na pelny ekran bez zadnych paskow z wykorzystaniem odpowiedniej rozdzielczosci, skoncentruj sie i przanalizuj kod(jesli oczywiscie chcesz) klas Animation i AnimationTest, oto one:

http://elcracktotal.ovh.org/Animation.java
http://elcracktotal.ovh.org/AnimationTest.java
http://elcracktotal.ovh.org/SimpleScreenManager.java

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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