【发布时间】:2017-08-13 17:59:07
【问题描述】:
我需要使用 textlayout 对象知道文本的大小。 我找到了以下一堆代码
final TextLayout LAYOUT = Toolkit.getToolkit().getTextLayoutFactory().createLayout();
LAYOUT.setContent(text != null ? text : "", font.impl_getNativeFont());
LAYOUT.setLineSpacing(1.0f);
LAYOUT.setWrapWidth(100.0f);
LAYOUT.setBoundsType(TextLayout.BOUNDS_CENTER);
return LAYOUT.getBounds().getHeight();
代码工作正常,除了我有一条关于 getNativeFont 的警告消息,它似乎已被弃用,因为我知道我需要的是文本的高度
所以我的问题是:合适的方法是什么?
提前致谢!
【问题讨论】:
-
TextLayout 是一个
com.sun.javafx.scene.text类。com.sun.javafx包中的任何 API 或类都不是公开支持的 API,也不保证在未来的 Java 版本中可用。因此,除非您别无选择,否则不建议使用 TextLayout,并且您还可以控制运行应用程序的 JavaFX 运行时版本,以确保它与您的应用程序兼容。 -
您可以尝试How to calculate the pixel width of a String in JavaFX? 中列出的技术,看看是否适合您。