Animacja i watki.

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)

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

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