动态创建对象并将其添加到列表JavaFX
我想创建一个对象调用,例如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
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中