我在确定 JavaFX 2 中呈现的文本节点的宽度时遇到问题。使用标准样式时,一切正常:
Text testText = new Text("test");
double width = testText.getLayoutBounds().getWidth();
但是如果我应用自定义 CSS 样式来设置不同的字体大小,就像这样
.text-class {
-fx-font: 20px "Tahoma Bold";
}
并将 CSS 类应用于我上面的示例:
Text testText = new Text("test");
testText.getStyleClass().add("text-class");
double width = testText.getLayoutBounds().getWidth();
我会得到与第一种情况相同的结果,因此显然样式设置会延迟到稍后的某个时间点。
如何确定 JavaFX 2 中 CSS 样式文本的宽度?是否有可能以某种方式强制立即设置 CSS 样式?
最佳答案
CSS 应用程序不会立即完成,因此,解决问题的方法是在文本大小实际发生变化时执行您的操作。
testText.layoutBoundsProperty()
是属性,它响应边界,它存储一个不可变对象(immutable对象)。还有其他属性,告诉您大小和位置。您可以做的是在该属性上附加一个更改监听器,并在修改完成后应用更改。
关于css - 确定 JavaFX/force 样式中的 CSS 样式文本大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15153327/