如何以编程方式将 class 或伪 class 添加到 JavaFX 中的自定义控件?
How to add class or pseudoclass programmatically to custom control in JavaFX?
在JavaScript世界中,常设置元素class来表示它的外观,后来由CSS定义。
JavaFX 也是这样吗?
例如,如果我想在 TableView
cells? I would not code color directly 中将负值着色为红色,但将一些 class 分配给单元格,例如 "negative",然后将其着色为红色怎么办CSS
.
我找到了 PseudoClass
class。它是为此而设计的吗?标记为"since 8",请问还有更成熟的API吗?
如果您想向 Node
添加可以打开和关闭的样式,PseudoClass
确实是正确的方法。它确实是在JavaFX 8.0中添加的,但那是当前的稳定版本,所以它是一个成熟的API。请注意,这会创建伪class(CSS 中的:classname
),而不是"normal" class(CSS 中的.classname
) .
如果你有一个你想要设置样式的节点(我们称之为 node
),你可以像这样使用 PseudoClass:
node.pseudoClassStateChanged(PseudoClass.getPseudoClass("negative"), true);
做同样的事情,除了用 false
作为第二个参数,再次关闭它。
在JavaScript世界中,常设置元素class来表示它的外观,后来由CSS定义。
JavaFX 也是这样吗?
例如,如果我想在 TableView
cells? I would not code color directly 中将负值着色为红色,但将一些 class 分配给单元格,例如 "negative",然后将其着色为红色怎么办CSS
.
我找到了 PseudoClass
class。它是为此而设计的吗?标记为"since 8",请问还有更成熟的API吗?
如果您想向 Node
添加可以打开和关闭的样式,PseudoClass
确实是正确的方法。它确实是在JavaFX 8.0中添加的,但那是当前的稳定版本,所以它是一个成熟的API。请注意,这会创建伪class(CSS 中的:classname
),而不是"normal" class(CSS 中的.classname
) .
如果你有一个你想要设置样式的节点(我们称之为 node
),你可以像这样使用 PseudoClass:
node.pseudoClassStateChanged(PseudoClass.getPseudoClass("negative"), true);
做同样的事情,除了用 false
作为第二个参数,再次关闭它。