形状数组列表
ArrayList of Shapes
我的代码有问题。我想编写程序来绘制矩形、圆形和另一种由点创建的形状。我想使用 Graphics2D,这是我的问题:How to make one ArrayList of all this shapes?有可能吗?我做了这样的事情:
List<Shape> shapesArray = new ArrayList<Shape>();
shapesArray.add(new Rectangle2D.Double());
shapesArray.get(0).setFrameFromDiagonal(point_a, point_b)
当我那样做时,我不能使用 Rectangle2D 方法。
感谢帮助
你肯定可以这样做:
List<Shape> shapesArray = new ArrayList<Shape>();
shapesArray.add(new Rectangle2D.Double());
shapesArray.get(0).setFrameFromDiagonal(point_a, point_b)
但要调用特定的 class 方法,需要强制转换...
要确定列表中的形状是否可以投射,您需要检查实例
喜欢:
if(shapesArray.get(0) instanceof Rectangle2D){
((Rectangle2D)shapesArray.get(0)).setFrameFromDiagonal(point_a, point_b)
}
是的,你可以做到。您唯一缺少的是在使用它之前对原始对象进行检查和强制转换。这是一些代码:
if(shapesArray.get(0) instanceof Rectangle2D)
Rectangle2D rectangle = (Rectangle2D) shapesArray.get(0);
// Use methods and do other checks
我的代码有问题。我想编写程序来绘制矩形、圆形和另一种由点创建的形状。我想使用 Graphics2D,这是我的问题:How to make one ArrayList of all this shapes?有可能吗?我做了这样的事情:
List<Shape> shapesArray = new ArrayList<Shape>();
shapesArray.add(new Rectangle2D.Double());
shapesArray.get(0).setFrameFromDiagonal(point_a, point_b)
当我那样做时,我不能使用 Rectangle2D 方法。
感谢帮助
你肯定可以这样做:
List<Shape> shapesArray = new ArrayList<Shape>();
shapesArray.add(new Rectangle2D.Double());
shapesArray.get(0).setFrameFromDiagonal(point_a, point_b)
但要调用特定的 class 方法,需要强制转换... 要确定列表中的形状是否可以投射,您需要检查实例
喜欢:
if(shapesArray.get(0) instanceof Rectangle2D){
((Rectangle2D)shapesArray.get(0)).setFrameFromDiagonal(point_a, point_b)
}
是的,你可以做到。您唯一缺少的是在使用它之前对原始对象进行检查和强制转换。这是一些代码:
if(shapesArray.get(0) instanceof Rectangle2D)
Rectangle2D rectangle = (Rectangle2D) shapesArray.get(0);
// Use methods and do other checks