0

我需要更改 JavaFX 中标签的锚点。我将锚描述为被选中以转换底层节点的点。默认情况下,锚点似乎是左上边缘。

我尝试通过如下所述的附加翻译来解决问题:

double x_relocate = label.getBoundsInParent().getWidth();
label.setTranslateX(label.getTranslateX() - x_relocate);

double y_relocate = label.getBoundsInParent().getHeight();
label.setTranslateY(des.getTranslateY() + y_relocate);

代码应该翻译标签,使它的行为就像锚点在右下角一样。这不起作用,因为在我执行代码时,标签的边界框是 [minX:0.0, minY:0.0, minZ:0.0, width:-1.0, height:-1.0, depth:0.0, maxX: -1.0,最大值:-1.0,最大值Z:0.0]。

有谁知道这个的解决方案?

编辑:添加图片以便更好地理解

画报

4

1 回答 1

0

好的,我自己解决了这个问题。这是我所做的:

  1. 给标签一个宽度和高度,为最长的文本留出足够的空间
  2. 重新定位每个象限中的标签。
  3. 设置每个象限中的文本对齐方式

示例(宽度:100,高度:15):

  • 东到南:这里不做任何事情,因为默认使用左上边缘从南到西
  • 从南到东:将标签向右移动 100 点以使右上边缘贴在圆圈上 + 将文本对齐设置为 UPPER_RIGHT

我希望对某人有所帮助。

于 2012-12-07T10:23:24.943 回答