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

Dim*_*ims 3 css java javafx pseudo-class

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

在JavaFX中是这样的吗?

例如,如果我想在TableView单元格中将红色的负值着色,该怎么办?我不会直接编码颜色,而是将一些类分配给一个单元格,比如"负面",然后将它变成红色CSS.

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

Eri*_*aas 11

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

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

node.pseudoClassStateChanged(PseudoClass.getPseudoClass("negative"), true);
Run Code Online (Sandbox Code Playgroud)

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

  • 为了提高效率,"PseudoClass"可能应存储在"静态最终"字段中,但仍然可以得到很好的答案...... (5认同)