我的问题是我能赶上显示器的情况下,“...”?
※我的意思是它的JavaFX有一个API,如果内容的结尾替换为“...”来判断?
事实上,我的问题的原因是,现在我们的测试人员要我们树立了一个TIP控制器(如Label),如果它仅仅是不够的显示。 如果内容足够的控制器来显示,我们并不需要添加一个提示即可。
我的问题是我能赶上显示器的情况下,“...”?
※我的意思是它的JavaFX有一个API,如果内容的结尾替换为“...”来判断?
事实上,我的问题的原因是,现在我们的测试人员要我们树立了一个TIP控制器(如Label),如果它仅仅是不够的显示。 如果内容足够的控制器来显示,我们并不需要添加一个提示即可。
还有,如果一个文本已被截断告诉的没有简单的方法。
这条新闻是在标记对象完成,并在LabeledSkinBase的实施,我们可以看到,所有的剪辑逻辑委托给computeClippedText(),它返回(剪切或没有)字符串:
result = Utils.computeClippedText(font, s, w, truncationStyle, ellipsisString);
[...]
text.setText(result);
此方法不会去标记对象的引用,并不会触发任何事件,所以唯一的机会,我们有computeClippedText()是否决定剪辑来看看实际的文本节点( 文本 ),其中包含实际正在显示的文字。 由于标记不公开这个节点上,我们不得不求助于做一个查询:
String originalString = myLabeled.getText();
Text textNode = (Text) myLabeled.lookup(".text"); // "text" is the style class of Text
String actualString = textNode.getText();
contentHasBeenClipped = originalString.notEquals(actualString);
我们终于得到它了!
没有用于指定超限文本的样式的API:
http://docs.oracle.com/javafx/2/api/javafx/scene/control/Labeled.html#textOverrunProperty
http://docs.oracle.com/javafx/2/api/javafx/scene/control/Labeled.html#ellipsisStringProperty
http://docs.oracle.com/javafx/2/api/javafx/scene/control/Labeled.html#wrapTextProperty
但我不知道有任何的API来检测溢出发生。 也许这将是一个很好的增强请求? 你可以在这里提交它:
http://javafx-jira.kenai.com/