title: Java infinite new objects
body: <p>So what I want to achieve, is to create a simple program that lets the user create rectangles on the screen and then move them around.</p>
  
  <p>I know that I can declare a new object in the code (i.e rectangle i = new rectangle(x,y,sizex,sizey)) however that will create only one, moreover it forces me to declare it in the code:
  block1 = new block
  block2 = new block
  etc</p>
  
  <p>Question is: How can I let the user create infinite rectangles with the use of lets say a button (not necessarily a button, it can be anything) and then let the user be capable of modyfing them (location/size etc).</p>
  
  <p>Examples would be nice. I just feel there is a better way than declaring a gazillion objects in the code and then displaying them one by one. In C++ i could declare a malloc expandable container that would just hold the values, and then just display things using these values, not sure for java.</p>
  
  <p>Simple code for reference:</p>
  
  <pre><code>public static void main(String[] args){
  
      JFrame frame = new JFrame("A.L.T.E.S");
      //Container container = frame.getContentPane();
      frame.setSize(1024, 768);
      frame.setVisible(true);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
      Block object = new Block(10,10,20,20);
      frame.add(object);
  
      object.reDraw();
      }
  
  
  public class Block extends JPanel{
  
  int yPos;
  int xPos;
  int xSize;
  int ySize;
  
  public Block(int xPos, int yPos, int xSize, int ySize){
      this.xPos = xPos;
      this.yPos = yPos;
      this.xSize = xSize;
      this.ySize = ySize;
  }
  
  public void setYPos(int yPos){
      this.yPos = yPos;
  }
  
  public void setXPos(int xPos){
      this.xPos = xPos;
  }
  
  public void setXSize(int xSize){
      this.xSize = xSize;
  }
  
  public void setYSize(int ySize){
      this.ySize = ySize;
  }
  
  public int getYPos(){
      return yPos;
  }
  
  public int getXPos(){
      return xPos;
  }
  
  public int getYSize(){
      return ySize;
  }
  
  public int getXSize(){
      return xSize;
  }
  
  public void reDraw(){
      repaint();
  }
  
  public void paintComponent(Graphics g){
      super.paintComponent(g);
      g.setColor(Color.BLUE);
      g.fillRect(xPos, yPos, xSize, ySize);
  }
  }
  </code></pre>