package graphtest; import java.awt. *; import javax.swing. *; class GrapgTest extends JFrame { private Image [] img = new Image [6]; private int j; // лічильник виведених кадрів GrapgTest (String s) {super (s); MediaTracker tr = new MediaTracker (this); for (int k = 0; k <6; k ++) { img [k] = getToolkit().getImage("f"+(k+1)+".png"); tr.addImage (img [k], 0); } try { tr.waitForAll ();} // Очікування на завантаження всіх зображень catch (InterruptedException e) {}; setSize (84, 113); setVisible (true); setDefaultCloseOperation (EXIT_ON_CLOSE); } @Override public void paint (Graphics g) { g.clearRect (0, 0, getSize().width, getSize().height); g.drawImage (img [j% 6], 0, 25, this); } public void go () { while (1==1) { repaint (); // виведення наступного кадру. try {Thread.sleep (1000);} // затримка на 1 секунду catch (InterruptedException e) {}; j++; } } public static void main (String [] args) { GrapgTest f = new GrapgTest (""); f.go (); } @Override public void update(Graphics g) { int w = getSize().width, h = getSize().height; Image offImg = createImage(w, h); // створення буфера зображення в оперативній пам'яті Graphics offGr = offImg.getGraphics(); // отримання його графічного контексту offGr.setColor(getBackground()); // заміна поточного кольору буфера на колір тла offGr.fillRect(0, 0, w, h); // заповнення буфера зображення поточним кольором offGr.setColor(getForeground()); // відновлення поточного кольору буфера offGr.drawImage(img[j%6],0,0,this); // виведення зображенння в контекст paint(offGr); // виведення зображення-буферу на экран g.drawImage(offImg, 0, 0, this); } }