首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javafx -工具提示具有与标签相同的样式

问javafx -工具提示具有与标签相同的样式
EN

Stack Overflow用户
提问于 2015-08-27 07:37:21
回答 1查看 820关注 0票数 0

在我的应用程序中,我有一个带有特定样式的标签,这个标签有一个工具提示。现在,我更改了代码,以便我的标签有一个类,并在css中定义样式。(效果很好)

但是现在工具提示具有与标签相同的样式(在它有标准javafx 8样式之前)

css:

代码语言:javascript
复制
.my-Class {
-fx-text-fill:lightblue;
-fx-font-size: 11pt;        
-fx-font-weight:bold;
-fx-font-style:italic;
}

这就是我创建标签的代码

代码语言:javascript
复制
Label label= new Label("i");
label.getStyleClass().add("my-Class ");
label.setTooltip(new Tooltip("xxx"));

在更改css之前,工具提示是标准字体/大小/.现在字体是粗体和斜体(但不是蓝色)。

为什么是这样?以及如何将其更改回以前的方式(但通过使用css文件)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-28 10:56:23

虽然国际海事组织没有提供明确的信息,但请查看此链接有关CSS继承的信息:

CSS还提供默认继承的某些属性,或者如果属性值“继承”,则继承属性。如果继承了一个值,则从文档树中元素的父元素的计算值继承它。在JavaFX中,继承类似于场景图中的父节点,而不是文档树中的元素。

因此,您的工具提示继承了它的父级CSS属性。你怎么知道它继承的是哪种属性?看看这些行(Java 8,不是一个简单的代码!):

代码语言:javascript
复制
Label label= new Label("i");
label.getStyleClass().add("my-Class");
Tooltip tooltip = new Tooltip(“xxx”);
label.setTooltip(tooltip);

List<CssMetaData< ? extends Styleable, ? >> cssProperties = ex2.getCssMetaData().stream().filter(t -> t.getProperty().equals("-fx-font")).findFirst().get().getSubProperties();
boolean inherits = cssProperties.stream().filter(t -> t.getProperty().equals("-fx-font-style")).findFirst().get().isInherits(); // Returns true

如果检查cssProperties列表,您应该能够看到继承的所有相关字体属性(inherits: true)。此列表应至少返回四种css样式,其中-fx-字体样式和-fx-字体权重将出现。

总之,如果要使工具提示具有常规的样式和大小,则必须在工具提示中添加新的CSS样式:

代码语言:javascript
复制
.my-Tooltip {
-fx-font-size: 11pt;        
-fx-font-weight: normal;
-fx-font-style: normal;
}   

否则,它将永远继承它父母的风格。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32243345

复制
相关文章

相似问题

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