动态创建对象并将其添加到列表JavaFX

动态创建对象并将其添加到列表JavaFX,java,javafx,Java,Javafx,我想创建一个对象调用,例如JavaFX中的圆。我的代码是这样的 List<Node> list = new ArrayList<>(); // Create circle dynamically for(int i = 0; i < 10; i++) { list.add(new Circle()); } List List=new ArrayList(); //动态创建圆 对于(int i=0;i

我想创建一个对象调用,例如JavaFX中的圆。我的代码是这样的

 List<Node> list = new ArrayList<>();

    // Create circle dynamically
    for(int i = 0; i < 10; i++) {
        list.add(new Circle());
    }
List List=new ArrayList();
//动态创建圆
对于(int i=0;i<10;i++){
添加(新圆圈());
}

我现在的问题是如何增加每个圆的唯一性。例如,如果我要为每个圆添加不同的颜色和大小。我怎样才能做到呢?请提供帮助。

为什么不在for循环中创建一个新的循环实例,根据您的喜好修改它,然后将其添加到列表中

List<Node> list = new ArrayList<>();

// Create circle dynamically
for(int i = 0; i < 10; i++) {
    Circle newCircle = new Circle();
    newCircle.setSize(i*2); //Just an example
    list.add(newCircle);
}
List List=new ArrayList();
//动态创建圆
对于(int i=0;i<10;i++){
圆圈newCircle=新圆圈();
newCircle.setSize(i*2);//只是一个例子
list.add(newCircle);
}

为什么不在for循环中创建一个新的循环实例,根据您的喜好修改它,然后将其添加到列表中

List<Node> list = new ArrayList<>();

// Create circle dynamically
for(int i = 0; i < 10; i++) {
    Circle newCircle = new Circle();
    newCircle.setSize(i*2); //Just an example
    list.add(newCircle);
}
List List=new ArrayList();
//动态创建圆
对于(int i=0;i<10;i++){
圆圈newCircle=新圆圈();
newCircle.setSize(i*2);//只是一个例子
list.add(newCircle);
}

随机:如果希望每个圆都具有随机属性,那么可以将
Math.rand()
方法与圆方法/构造函数结合使用,例如:

for(int i = 0; i < 10; i++){
    Circle circle = new Circle(Math.rand() * 600, Math.rand() * 400, Math.rand() * 30 + 20);
    list.add(circle);
    switch((int)(Math.rand() * 4)){
    case 0:
        circle.setFill(Color.GREEN);
        break;
    case 1:
        circle.setFill(Color.RED);
        break;
    case 2:
        circle.setFill(Color.BLUE);
        break;
    case 3:
        circle.setFill(Color.YELLOW);
        break;
    }
}

但是,您必须亲自确保列表中的元素是圆才能使用这种方法。您的示例提供了这一点,但是如果您制作了一个更大的程序,并且列表中包含除Circle之外的其他节点,则可能更难获得相同级别的控制。如果列表只用于圆,那么最好将其改为
列表
类型。

随机:这一切都取决于您希望如何更改它们,如果您希望每个圆都具有随机属性,那么就使用
Math.rand()
方法与循环方法/构造函数相结合,例如:

for(int i = 0; i < 10; i++){
    Circle circle = new Circle(Math.rand() * 600, Math.rand() * 400, Math.rand() * 30 + 20);
    list.add(circle);
    switch((int)(Math.rand() * 4)){
    case 0:
        circle.setFill(Color.GREEN);
        break;
    case 1:
        circle.setFill(Color.RED);
        break;
    case 2:
        circle.setFill(Color.BLUE);
        break;
    case 3:
        circle.setFill(Color.YELLOW);
        break;
    }
}

但是,您必须亲自确保列表中的元素是圆才能使用这种方法。您的示例提供了这一点,但是如果您制作了一个更大的程序,并且列表中包含除Circle之外的其他节点,则可能更难获得相同级别的控制。如果列表仅用于圆,则最好将其改为
列表
类型。

使用Math.random在半径循环中可以获得多个半径的圆,并将其添加到ArrayListMath.random在半径循环中可以获得多个半径的圆,并将其添加到arraylist中