当前位置: 首页 > 知识库问答 >
问题:

如何使用TextLayout没有弃用的impl_getNativeFont方法[重复]

庄阿苏
2023-03-14

我需要使用文本布局对象知道文本的大小。我找到了以下一堆代码

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的警告消息,它似乎被否决了,我知道我需要的是文本的高度

所以我的问题是:什么是合适的方法?

提前感谢!

共有1个答案

陆俭
2023-03-14

非常感谢。

它对我很有效:

Text theText = new Text(theLabel.getText());
theText.setFont(theLabel.getFont());
double width = theText.getBoundsInLocal().getWidth();
 类似资料:
  • 我有一个问题要解决,我应该在哪里从使用Java8 streams的员工列表中找到性别为男性的第n个员工,如果没有找到,则返回可选的空。 下面是接受Employee对象列表和整数n的方法,其中n表示必须返回的第n个男性雇员(如果存在的话)。

  • 我看到了许多在API上使用弃用注释的示例,以便将它们标记为“需要尽快更换”。 然而,在几乎所有这些情况下,代码开发人员不仅继续使用弃用的API,而且还抑制了弃用警告。 API开发人员的最佳意图似乎最终会创建更多与已实现的业务逻辑无关的代码——如果API已弃用但不断使用并抑制相关警告,则看起来充其量是代码的退化,并且在最坏的情况下替换弃用的库时是潜在的应用程序断点IMHO。 这个问题有没有切实可行的

  • 我正在用Java创建一个计算器GUI应用程序。我已经实现了用鼠标按下按钮的计算器。我也想听听numpad Press的数字,但我不想在ActionListener中重新创建方法。 例如,当按下JButton时,我就是这样实现listenOne的。 在panel类的构造函数中,我以这种方式构造了JButton:

  • 问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 可能重复: 从Java访问scala.None 在Java中,您可以使用构造函数创建一个实例,即,但没有伙伴类。如何从Java 传递给Scala函数? 问题答案: 我认为这个丑陋的方法会起作用: 不需要新实例,因为一个实例与另一个实例一样好…