【问题标题】:javafx change anchor for labeljavafx 更改标签的锚点
【发布时间】:2012-12-07 18:23:24
【问题描述】:

我需要更改 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,最大 Y:-1.0,最大 Z:0.0]。

有人知道解决办法吗?

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

【问题讨论】:

  • 在 stage.show() 命令之后尝试这些代码。
  • 不过,使用翻译来改变锚点还是很奇怪的。有没有其他方法可以做到这一点?

标签: position positioning anchor javafx bounding-box


【解决方案1】:

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

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

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

  • East to South: 此处无事可做,因为默认使用左上边缘 从南到西
  • 从南到东:将标签向右移动 100 点,以使右上边缘紧贴圆圈 + 将文本对齐方式设置为 UPPER_RIGHT

我希望对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-20
    • 1970-01-01
    相关资源
    最近更新 更多