code: import java.awt.Graphics;
  import java.awt.image.BufferedImage;
  import javax.swing.JFrame;
  
  public class Mandelbrot extends JFrame {
  
      private final int MAX_ITER = 570;
      private final double ZOOM = 150;
      private BufferedImage I;
      private double zx, zy, cX, cY, tmp;
  
      public Mandelbrot() {
          super("Mandelbrot Set");
          setBounds(100, 100, 800, 600);
          setResizable(false);
          setDefaultCloseOperation(EXIT_ON_CLOSE);
          I = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
          for (int y = 0; y < getHeight(); y++) {
              for (int x = 0; x < getWidth(); x++) {
                  zx = zy = 0;
                  cX = (x - 400) / ZOOM;
                  cY = (y - 300) / ZOOM;
                  int iter = MAX_ITER;
                  while (zx * zx + zy * zy < 4 && iter > 0) {
                      tmp = zx * zx - zy * zy + cX;
                      zy = 2.0 * zx * zy + cY;
                      zx = tmp;
                      iter--;
                  }
                  I.setRGB(x, y, iter | (iter << 8));
              }
          }
      }
  
      @Override
      public void paint(Graphics g) {
          g.drawImage(I, 0, 0, this);
      }
  
      public static void main(String[] args) {
          new Mandelbrot().setVisible(true);
      }
  }
  