title: How to add a shape on button click?
body: <p>I have the following code, I am trying to add a circle to my frame when the button is clicked, I tried calling circle class from my main function, but do not know how to add a circle after that. please help me!</p>
  
  <pre><code>public static void main(String[] args) {
      // Create a frame and put a scribble pane in it
      JFrame frame = new JFrame("FrameFormula");
      frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
      final FrameFormula scribblePane = new FrameFormula();
      JPanel shapePanel = new JPanel();
      JButton horGap = new JButton("Add a circle");
      horGap.addActionListener(new ActionListener(){
              public void actionPerformed(ActionEvent e) {
                  int[] circleValues = generateRandomValues(300, 300, 50, 150);
                  int x = circleValues[0];
                  int y = circleValues[1];
                  int width = circleValues[2];
                  int height = width;
                  Circle circle = new Circle(x, y, width, height);
                  //scribblePane.addCircle(circle);
              }
          });
  shapePanel.add(horGap);
  frame.add(shapePanel, BorderLayout.SOUTH);
  frame.getContentPane().add(scribblePane, BorderLayout.CENTER);
  }
  </code></pre>
  
  <p>I have created separate classes for creating circle with x and y points.</p>
  
  <pre><code>private static int[] generateRandomValues(int maxX, int maxY, 
                                         int minSize, int maxSize) {
          Random random = new Random();
          int[] values = new int[3];
          values[0] = random.nextInt(maxX);
          values[1] = random.nextInt(maxY);
          values[2] = Math.min(random.nextInt(maxSize) + minSize, maxSize);
          return values;
      }
  
      static class Circle {
  
          int x, y, width, height;
  
          public Circle(int x, int y, int width, int height) {
              this.x = x;
              this.y = y;
              this.width = width;
              this.height = height;
          }
  
          public void draw(Graphics g) {
              g.drawOval(x, y, width, height);
          }
      }
  </code></pre>