在JavaFX中获取Shape对象的宽度和高度

时间:2014-03-26 16:51:07

标签: java javafx geometry 2d

我有一个方法,它接受Shape的任何子类(可以是CircleRectanglePolygonLine等...)并返回Shape个对象。

public Shape returnShapeObject() {
   return circle1;
}

问题在于,一旦我获得了圆形的形状对象表示,它就不再具有.getRadius()方法。它也没有.getWidth().getHeight()

如何在2d JavaFX中获取Shape对象的半径/宽度/高度呢?

1 个答案:

答案 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进行演员表。