创建形状并将其放入数组列表中。 (JAVA)

时间:2016-02-24 15:13:46

标签: java arraylist

所以我需要创建大约10个形状并将其放入数组列表形状中,然后将列表传递给组件。

我需要一点帮助,想知道我是否走在正确的轨道上。

所以这是代码:

public class ShapeDemo
{
    public static final int WIDTH = 300 ;
    public static final int HEIGHT = 400 ;

    public static void main(String[] args)
    {
     ArrayList<Shape> shapes = new ArrayList<Shape>() ;
     Random random = new Random() ;
     int x, y ;
     // create the ten shapes and put them in shapes array list below.
     /*
        put code here

     */

     JComponent component = new ShapeComponent2(shapes) ;
     JFrame frame = new JFrame("") ;
     frame.add(component) ;
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
     frame.setSize(WIDTH, HEIGHT) ;
     frame.setVisible(true) ;
    }
}

我想做的是创建形状:

shapes.add( new Ellipse.Double(x,y,WIDTH,HEIGHT));

做了10次。但这不起作用。

任何帮助将不胜感激。

编辑: 这些是我的进口商品:

import javax.swing.JFrame ;
import javax.swing.JComponent ;
import java.awt.Rectangle ;
import java.awt.geom.Line2D ; 
import java.awt.geom.Ellipse2D ;
import java.awt.geom.Arc2D ;
import java.awt.Shape ;
import java.util.ArrayList ;
import java.util.Random ;

1 个答案:

答案 0 :(得分:0)

如果x和y应该具有每个形状的随机值,那么做你想要完成的事情的最好方法是使用for循环:

public class ShapeDemo
{
    public static final int WIDTH = 300 ;
    public static final int HEIGHT = 400 ;

    public static void main(String[] args)
    {
     ArrayList<Shape> shapes = new ArrayList<Shape>() ;
     Random random = new Random() ;
     int x, y ;
     // create the ten shapes and put them in shapes array list below.

     for (int i=1; i<=10;i++) {
         x = random.nextInt(100);// random number in range of 0-99. Can be changed if needed to suit
         y = random.nextInt(100);
         shapes.add( new Ellipse.Double(x,y,WIDTH,HEIGHT));
     }
     JComponent component = new ShapeComponent2(shapes) ;
     JFrame frame = new JFrame("") ;
     frame.add(component) ;
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
     frame.setSize(WIDTH, HEIGHT) ;
     frame.setVisible(true) ;
    }
}

for循环每次都会给整数x和y一个随机数,并且应该向ArrayList添加10个新形状。