在JavaFX /强制样式中确定CSS样式的文本大小?

时间:2013-03-01 08:17:20

标签: css text size javafx-2

我在确定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样式化?

2 个答案:

答案 0 :(得分:2)

CSS应用程序不会立即完成,因此,解决问题的方法是在文本大小实际发生变化时执行操作。

testText.layoutBoundsProperty()

是响应边界的属性,它存储一个不可变对象。还有其他属性,告诉你有关大小和位置的信息。您可以做的是 - 在此属性上附加更改侦听器,并在完成修改时应用更改。

答案 1 :(得分:1)

CSS-Styles应用于下一个所谓的脉冲旁边,layoutBounds会受到您放入的父容器的影响。