我的问题是我可以捕获显示“...”的事件吗?
※我的意思是javaFX有API来判断内容结尾是否替换为“...”吗?
事实上,我提出这个问题的原因是,现在我们的测试人员希望我们在一个控制器(如标签)上设置一个 TIP(如果它不足以显示)。如果内容足以在控制器中显示,那么我们就不需要添加TIP。
没有简单的方法可以判断文本是否被剪辑。
这个裁剪是在 Labeled 对象上完成的,在 LabeledSkinBase 的实现中,我们可以看到所有裁剪的逻辑都委托给了computeClippedText(),它返回一个(裁剪或未裁剪)字符串:
result = Utils.computeClippedText(font, s, w, truncationStyle, ellipsisString);
[...]
text.setText(result);
此方法不会获取对 Labeled 对象的引用,也不会触发任何事件,因此我们判断computeClippedText() 是否决定剪辑的唯一机会是查看实际的 Text 节点(text),其中包含实际显示的文本。由于 Labeled 不公开此节点,因此我们必须进行查找:
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);
我们终于得到它了!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)