public class Panel extends JPanel { Image boom; @Override public void paint (Graphics g) { Graphics2D g2 = (Graphics2D) g; w = getSize().width; // ширина панелі h = getSize().height; // висота панелі if (t==0) {x_0=-d0/2; y_0=h-d0/2;} // початкові координати ядра BufferedImage bi = (BufferedImage) createImage(w, h);// буфер зображення Graphics2D big = bi.createGraphics(); // і його графічний контекст big.setColor(new Color(150,200,255)); // колір тла big.fillRect(0, 0, w, h); // зображення тла if (c) { boom = getToolkit().getImage("boom.png"); // завантаження файлу зображення вибуху x = (x+x_1-(d0+d1)/2)/2 - 76/2; y = (y+y_1-(d0+d1)/2)/2 - 70/2; big.drawImage(boom, (int) (x+x_1-(d0+d1)/2)/2 - 38, (int) (y+y_1-(d0+d1)/2)/2 - 35, this); // зображення вибуху у буфері } else { big.setColor(Color.red); // колір цілі big.fillOval( (int) x_1, (int) y_1, d1, d1);// зображення цілі big.setColor(Color.black); // колір ядра big.fillOval( (int) x, (int) y, d0, d0);// зображення ядра } g2.drawImage(bi, 0, 0, this); // вивести зображення-буфер на экран } }