gpt4 book ai didi

java - 在 javafx 中的数组列表中创建和存储不同数量的形状

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

我一直在练习 javafx 并遇到了一些我无法弄清楚的东西。我想将不同数量的矩形放入数组列表中。现在,我将每个矩形存储为各种属性的 double 组 (double[]),然后为这些值设置一个基本矩形并返回它。

public class example{
Rectangle myRectangle = new Rectangle(0,0,25,25);
ArrayList<double[]> rectangles = new ArrayList();
double[] tempArray = [0,0];
public void addRect (double x, double y){
this.tempArray[0] = x;
this.tempArray[1] = y;
this.rectangles.add(this.tempArray);
};
public Rectangle getRect (int id){
this.myRectangle.setX(this.rectangles.get(id)[0]);
this.myRectangle.setY(this.rectangles.get(id)[1]);
return(this.rectangle);
};
}

在此示例中,当我调用 getRect 时,它设置基本矩形的 x 和 y,然后返回该矩形。这是可行的,但我想知道是否有一种方法可以在 ArrayList 中存储 Rectangle 的多个实例。我看到这样做的主要问题是您必须命名实例(在上面的示例中为 myRectangle)。我想如果有办法解决这个问题,那就是根据字符串命名实例,换句话说:

Rectangle "myRectangle" = new Rectangle();

据我所知,这是不可能的。

我对 Javafx 和 Java 总体来说还很陌生,所以如果我的代码有任何其他问题,请随时纠正。谢谢!

最佳答案

您只需创建一个 ArrayList<Rectangle>并向其添加矩形。

public class Example {
private List<Rectangle> rectangles = new ArrayList<>();

public void addRectangle(double x, double y, double width, double height) {
rectangles.add(new Rectangle(x, y, width, height));
}

public Rectangle getRectangle(int index) {
return rectangles.get(index);
}
}

您应该注意到,您的原始代码实际上根本无法按预期工作。例如,尝试:

// please do NOT name classes with lower case...
example e = new example();
e.addRectangle(0, 0);
e.addRectangle(100, 100);

Rectangle rect1 = e.getRectangle(0);
System.out.println("Rectangle 1: ["+rect1.getX()+", "+rect1.getY()+"]");
Rectangle rect2 = e.getRectangle(1);
System.out.println("Rectangle 2: ["+rect2.getX()+", "+rect2.getY()+"]");

// but:
System.out.println("Rectangle 1: ["+rect1.getX()+", "+rect1.getY()+"]");
// oops.

System.out.println("Rectangle 1 and 2 are the same: " + (rect1==rect2) );

关于java - 在 javafx 中的数组列表中创建和存储不同数量的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35850435/

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