css - 确定 JavaFX/force 样式中的 CSS 样式文本大小?

标签 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 样式?

最佳答案

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

testText.layoutBoundsProperty()

是属性,它响应边界,它存储一个不可变对象(immutable对象)。还有其他属性,告诉您大小和位置。您可以做的是在该属性上附加一个更改监听器,并在修改完成后应用更改。

关于css - 确定 JavaFX/force 样式中的 CSS 样式文本大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15153327/

相关文章:

javascript - 将 bootbox.js 确认框添加到 href 链接

html - 如何将 html 列宽固定为其内容的最大宽度?

java - 如何读取文本文件中行列表的位置

sql - 使用 SQL 来转换和组合字符串

c - 动态增加/减少数组大小

wpf - 如何在 UIElement 上重置 DesiredSize

html - Internet Explorer 和 Edge 浏览器中的 Bootstrap 固定位置导航栏标题和 anchor 标记

css - 是否有用于包含特定文本的元素的 CSS 选择器?

linux - 如何在 Linux 中打开默认的文本编辑器?

c++ - 如何从指针获取 vector 的大小