将形状作为对象存储到数组列表中

时间:2014-02-28 09:45:40

标签: java user-interface drawing

我的主要目标是让用户绘制一个形状然后将该形状存储到一个arraylist中,这样当用户激活actionlistener以绘制另一个形状时,其他形状将不会消失。

代码非常基本,但正如您所见。我有一个for循环与另一个名为Rect的类。 Rect有一个构造函数,它接受绘制用户矩形的坐标。我想要获取坐标,将它们作为对象存储到一些任意的arraylist rectList中,然后使用for循环重绘它们以便它们保留在屏幕上。我很困惑,因为我的主类(包含我的Draw类)中有一个arraylist RectList,但是我需要将Rect类中构建的矩形对象放到我的rectList arraylist中。

我的用户当前绘制了一个矩形:

 private class Draw extends JPanel
  {

     public void paintComponent(Graphics page)
      {
       super.paintComponent(page);


       //draw all rectangles
          for (int i=0; i < rectList.size(); i++)
            {
              ((Rect) rectList.get(i)).draw(page);
            }


          if (mouseDragged == true) 
           {
            page.drawRect(x1, y1, x3-x1, y3-y1);
            page.fillRect(x1, y1, x3-x1, y3-y1);

           }

      }
    } 

1 个答案:

答案 0 :(得分:0)

我通过计算如何将对象存储到数组中来修复它。 rectList.add(new Rect(第一个坐标,第二个坐标,结束坐标1,结束坐标2,矩形颜色));