如何以编程方式将类或伪类添加到JavaFX中的自定义控件?

时间:2016-05-06 12:32:07

标签: java css javafx pseudo-class

在JavaScript世界中,通常设置元素类来表示它的外观,后来由CSS定义。

在JavaFX中是这样吗?

例如,如果我想在TableView单元格中以红色显示负值,该怎么办?我不会code color directly,而是将一些类分配给一个单元格,例如“负面”,然后将CSS将其变为红色。

我找到了PseudoClass课程。这是为了这个吗?它被标记为“从8开始”,那么还有更成熟的API吗?

1 个答案:

答案 0 :(得分:9)

如果您要为Node添加可以打开和关闭的样式,PseudoClass确实是正确的方法。它确实是在JavaFX 8.0中添加的,但这是当前的稳定版本,所以它是一个成熟的API。请注意,这会创建一个伪类(CSS中为:classname),而不是"正常" class(CSS中的.classname)。

如果你有一个你想要样式的节点(让我们称之为node),你可以像这样使用PseudoClass:

node.pseudoClassStateChanged(PseudoClass.getPseudoClass("negative"), true);

做同样的事情,除了false作为第二个参数,再次关闭它。