为什么text.getLayoutBounds()没有给我正确的界限

时间:2018-06-20 13:57:00

标签: java css javafx layer bounds

我的问题似乎很愚蠢,但是我在文本中显示了一个图标,当我尝试获取文本的边界时,java没有得到正确的边界。

这是代码:

@Override
public Layer buildLayer() {

    //creation of the Layer
    final Layer planeLayer = new Layer();
    planeLayer.setZindex(1500);

    Text plane = new Text(PLANE_ICON_NUMBER);
    plane.setId("plane-headings-game");
    plane.getStyleClass().add("plane-headings-game");
    System.out.println(plane.getLayoutBounds().getWidth());

    plane.setRotate(PLANE_ROTATION);

    planeLayer.getChildren().add(plane);

    planeLayer.setTranslateX(Main.getWindowWidth() / 2. - 
          plane.getLayoutBounds().getWidth());
    planeLayer.setTranslateY(Main.getWindowHeight() / 2. - 
          plane.getLayoutBounds().getHeight());

    return planeLayer;
}

所以我有一个CSS:

#plane-headings-game {
  -fx-font-family: 'govicons-webfont'; 
  -fx-font-size: 60px;
  -fx-fill: firebrick;
}

(govicons-webfont在之前声明)

所以当我这样做时:

System.out.println(plane.getLayoutBounds().getWidth());

打印的结果是:

  

7.74609375

它应该类似于:

  

60.0

我认为返回的值是默认值,因此java无法访问对象one。

所以,请问您知道它可能来自哪里吗?我会非常棒的:) 如果您需要更多信息,我会给您

0 个答案:

没有答案