2017-03-21 35 views
0

我需要使用textlayout對象來了解文本的大小。 我發現下面一串代碼如何使用TextLayout而不推薦使用impl_getNativeFont方法

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這似乎是過時了,知道我需要的是文本

這樣的高度的警告消息是否工作正常我的問題:什麼是合適的方法?

在此先感謝!

+0

TextLayout是一個'com.sun.javafx.scene.text'類。 'com.sun.javafx'包中的任何API或類都不是公開支持的API,並且不保證在將來的Java版本中可用。因此,除非沒有別的選擇,否則不推薦使用TextLayout,並且還可以控制運行應用程序的JavaFX運行時版本,以確保它與應用程序兼容。 – jewelsea

+0

你可以嘗試下列技術:[如何計算JavaFX中字符串的像素寬度?](http://stackoverflow.com/questions/13015698/how-to-calculate-the-pixel-width-of- a-string-in-javafx),看看它是否適合你。 – jewelsea

回答

0

謝謝

這是爲我工作:

Text theText = new Text(theLabel.getText()); 
theText.setFont(theLabel.getFont()); 
double width = theText.getBoundsInLocal().getWidth(); 
相關問題