在Java FX 2.2中似乎没有API调用来计算文本字符串的宽度(以像素为单位)。在其他论坛上也有解决方法的建议,但是我创建或查找使用默认字体或其他方式返回String宽度的任何代码的工作都失败了。任何帮助,将不胜感激。
3 回答

拉莫斯之舞
TA贡献1820条经验 获得超10个赞
该解决方案在Java 8之前一直有效:
float width = com.sun.javafx.tk.Toolkit.getToolkit().getFontLoader().computeStringWidth("", gc.getFont());
float height = com.sun.javafx.tk.Toolkit.getToolkit().getFontLoader().getFontMetrics(gc.getFont()).getLineHeight();
这些类已被删除,在较新的Java版本中不可用!

芜湖不芜
TA贡献1796条经验 获得超7个赞
我尝试了这个:
Text theText = new Text(theLabel.getText());
theText.setFont(theLabel.getFont());
double width = theText.getBoundsInLocal().getWidth();
而且似乎工作正常。
添加回答
举报
0/150
提交
取消