problem z animowanymi gifami

0

Witam
Mam taki mały problem:

Jak odświeżać gify żeby znów sie animowały po kliknięciu na przycisk. Gify zostały stworzone tak, że animują sie tylko jednokrotnie.
Jak wcisnę guzik "but14" to animuje mi sie gif "0pn.gif", co zrobic zeby ponowne nacisniecie guzika "but14" spowodowało ponowna animację gifa "0pn.gif", tyczy sie to wszystkich gifow w tym aplecie.

PROSZĘ O POMOC [???]

Ponizej jest link do apletu i kod apletu:

Link do apletu:
http://xysztoff.republika.pl/classes/gifowiec.htm
KOD:

public class gifowiec extends JApplet implements ActionListener{
	public Funkcja zlacze;
	Image rysunek;
	JButton but14 = new JButton("Z\u0142\u0105cze niespolaryzowane");
 	JButton but15 = new JButton("Polaryzacja w kierunku zaporowym");	
 	JButton but16 = new JButton("Polaryzacja w kierunku przewodzenia");
	JTabbedPane jtabpane;
	
	public void init() {
		 but14.addActionListener(this);
 		 but15.addActionListener(this);
 		 but16.addActionListener(this);
 		  
 		 zlacze  = new Funkcja("zlacze pn");
 		  
        jtabpane = new JTabbedPane();
		JPanel	zakladka36 = new JPanel();
		zakladka36.setLayout(new BoxLayout(zakladka36, BoxLayout.Y_AXIS));
		zakladka36.add(zlacze);
		zakladka36.add(but14);
		zakladka36.add(but15);
		zakladka36.add(but16);
		
		jtabpane.addTab("Zlacze pn",zakladka36);
		
	
		Container cp = getContentPane();
        cp.setLayout(new BorderLayout());
        cp.add(jtabpane);
        
        setSize(900, 400);
	}
	public void actionPerformed(ActionEvent e)
		{
 	
 	 	
     if (e.getSource() == but14) 
     	{
     	 	rysunek = getImage(getDocumentBase(),"images/0pn.gif");
     		zlacze.repaint();
     		}
     		
     		
     if (e.getSource() == but15)
     	 {
     	 	rysunek = getImage(getDocumentBase(),"images/1pn.gif");
     	 	zlacze.repaint();
     	 		}
     if (e.getSource() == but16)
     	 {
     	 
			rysunek = getImage(getDocumentBase(),"images/2pn.gif");
			zlacze.repaint();
     	 		}
	}
	
    class Funkcja extends JPanel  
    {
        private String typFunkcji;
        
          public Funkcja(String typ) {
          	  typFunkcji = typ;
          }
          
          
	public void paint(Graphics g) {
		 super.paint(g);
		 
	
	 if (typFunkcji == "zlacze pn") 
                {
		g.drawImage(rysunek, 0, 0,this );
                }
                
	}
   }
}

0

przypisuje 3 rozne obrazki do zmiennej pn0 w zaleznosci od zmiennej nr. Dlaczego aplet pamieta: jesli np wyswietli mi sie pierwsza animacja 0pn i przelacze na animacje druga 1pn i zaraz przelacze ponownie na pierwsza pn0 to widze ze ten obrazek animowal sie w pamieci tzn (uplynelo kilka klatek animacji miedzy przelaczaniami). Dlaczego nie animuje sie obrazek pierwszy od POCZĄTKU??????????????????????????
DLACZEGO APLET PAMIETA????????????????????????????????????????????
Jak wyczyscic pamieć???????????????????????????????????????????????
ODPOWIE MI KTOS??? [glowa] [glowa] [glowa] [glowa] [glowa] [glowa] [glowa] [glowa] [glowa] [glowa] [glowa] [glowa] [glowa] [glowa] [glowa] [glowa] [glowa] [glowa]

Image pn0;

            	if(nr==0)
            	{pn0= getImage(getDocumentBase(),"images/0pn.gif");
            		g2.drawImage(pn0,0,35,this);
            	}
            	
            	if(nr==1)
            	{pn0= getImage(getDocumentBase(),"images/1pn.gif");
            		g2.drawImage(pn0,0,35,this);
            	}
            	
            	if(nr==2)
            	{pn0= getImage(getDocumentBase(),"images/2pn.gif");
            		g2.drawImage(pn0,0,35,this);
            	}

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