所以我需要创建大约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 ;
答案 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个新形状。