首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaFX TextFlow设置默认文本颜色

JavaFX TextFlow设置默认文本颜色
EN

Stack Overflow用户
提问于 2017-11-29 21:21:36
回答 1查看 2.7K关注 0票数 2

作为标题,可以对TextFlow组件的所有文本应用默认颜色吗?

代码语言:javascript
复制
TextFlow textFlow = new TextFlow();
textFlow.setId("supertextflow");

// Somewhere else in the code
textFlow.getChildren()
    .add(new Text("Dynamic added text! OMG!"));

我尝试了不同的解决方案,但没有一种有效。

代码语言:javascript
复制
#supertextflow {
    -fx-text-fill: red;
}

#supertextflow * .text{
    -fx-fill: red;
}

#supertextflow > * > .text {
    -fx-fill: red;
}

我知道文本是另一个组件,但是为什么我不能从它的父级来定义它呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-29 22:00:41

好吧,你不能用Text来做这件事,因为如果你看JavaFX CSS参考指南,它的样式类没有填充css规则。因此,我建议不要使用Text,而是使用Label。如果这样做,那么您可以使用下面的css规则:

代码语言:javascript
复制
#supertextflow > .label {
    -fx-text-fill: blue;
    -fx-font-size : 20px;
}

如果您想继续使用文本,则必须将FlowPane中的每个元素(文本)设置为特定的id (ex )。#customText),然后使用它设置CSS规则,如下所示:

代码语言:javascript
复制
#supertextflow > #customText {
    -fx-fill: red;
    -fx-font-size : 20px;
}

编辑:,正如James_D在下面的推荐中所提到的,您应该在CSS规则上使用类型选择器(我猜这是正确的术语),以便在不需要在它们上设置任何in的情况下为TextFlow中的所有文本节点设置样式:

代码语言:javascript
复制
#supertextflow > Text { 
    -fx-fill: red;
    -fx-font-size : 20px;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47562036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档