我有一个方法,它接受Shape
的任何子类(可以是Circle
,Rectangle
,Polygon
,Line
等...)并返回Shape
个对象。
public Shape returnShapeObject() {
return circle1;
}
问题在于,一旦我获得了圆形的形状对象表示,它就不再具有.getRadius()
方法。它也没有.getWidth()
或.getHeight()
。
如何在2d JavaFX中获取Shape对象的半径/宽度/高度呢?
答案 0 :(得分:5)
您可以将方法Node#getLayoutBounds()
用作:
List<Shape> shapes = new ArrayList<>();
shapes.add(new Circle(30));
shapes.add(new Rectangle(200, 200));
shapes.add(new Text("some arbitrary long text for testing"));
for (Shape shape : shapes) {
System.out.println("bounds = " + shape.getLayoutBounds());
System.out.println("width = " + shape.getLayoutBounds().getWidth());
System.out.println("height = " + shape.getLayoutBounds().getHeight());
}
请注意仔细阅读该方法的javadoc。
如果你想要一个具体形状的方法和属性,那么你应该按照他评论中提到的@AKS进行演员表。