在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
提交
取消