gpt4 book ai didi

java - 制作包含对象(椭圆形、矩形等)的 ArrayList

转载 作者:行者123 更新时间:2023-12-01 11:34:34 26 4
gpt4 key购买 nike

我正在为一个学校项目创建一个程序,用户可以使用控制以下尺寸和颜色的按钮创建一个几何形状(应该看起来像一匹马):一个椭圆形、一个圆形、两个矩形和一个字符串(作为图的标题)。为了保存该图,我想要一个包含所有这些内容的 ArrayList,因此我创建了一个如下所示的类。

import javafx.scene.shape.Circle;
import javafx.scene.shape.Ellipse;
import javafx.scene.shape.Rectangle;

public class WiLi_Horse{

Ellipse body;
Rectangle leg1;
Rectangle leg2;
Circle head;
String name;

public WiLi_Horse(Ellipse bdy,
Rectangle lg1, Rectangle lg2,
Circle hd, String nme) {

body = bdy;
leg1 = lg1;
leg2 = lg2;
head = hd;
name = nme;
}
}

现在,当我创建 ArrayList 时,我编写以下内容(在另一个类中):

ArrayList<WiLi_Horse> horseList = new ArrayList<>();

然后我想在 ArrayList 中添加一匹“马”,所以我首先输入:

horseList.add(new WiLi_Horse(XXX);

其中显示“XXX”的地方就是当前的问题。从这里开始我不知道该写什么了。 Eclipse 的快速修复是添加 null, null, null, null, null,但这当然不是我想要的。

提前谢谢您。

最佳答案

也许您可以尝试使用 ShapeList 来接受所有这些:

List<Shape> shapes = new ArrayList<Shape>();

现在您可以添加任何您想要添加的形状:

shapes.add(body);
shapes.add(leg1);
shapes.add(leg2);

等等。这是您可以测试的完整示例:

public class WiLi_Horse {
Ellipse body;
Rectangle leg1;
Rectangle leg2;
Circle head;
String name;

public WiLi_Horse(Ellipse body, Rectangle leg1, Rectangle leg2, Circle head, String name) {
this.body = body;
this.leg1 = leg1;
this.leg2 = leg2;
this.head = head;
this.name = name;
}
public List<Shape> getHorse()
{
List<Shape> shapes = new ArrayList<Shape>();
shapes.add(body);
shapes.add(leg1);
shapes.add(leg2);
shapes.add(head);
return shapes;
}
public String getName() {
return name;
}

@Override
public String toString() {
return "WiLi_Horse{" +
"body=" + body +
", leg1=" + leg1 +
", leg2=" + leg2 +
", head=" + head +
", name='" + name + '\'' +
'}';
}
}

现在您可以测试它:

public static void main(String[] args) {
Ellipse ellipse = new Ellipse(10,20);
Rectangle rect1 = new Rectangle(40,20);
Rectangle rect2 = new Rectangle(40,20);
Circle circle = new Circle(5);
String name = "Horse";

WiLi_Horse horse1 = new WiLi_Horse(ellipse,rect1,rect2,circle,name);
WiLi_Horse horse2 = new WiLi_Horse(ellipse,rect1,rect2,circle,name);
WiLi_Horse horse3 = new WiLi_Horse(ellipse,rect1,rect2,circle,name);
WiLi_Horse horse4 = new WiLi_Horse(ellipse,rect1,rect2,circle,name);

List<WiLi_Horse> horseList = new ArrayList<>();
horseList.add(horse1);
horseList.add(horse2);
horseList.add(horse3);
horseList.add(horse4);
System.out.println(horseList);
}

关于java - 制作包含对象(椭圆形、矩形等)的 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30139613/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com