属性选择器如何在JavaFX中工作?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了属性选择器如何在JavaFX中工作?相关的知识,希望对你有一定的参考价值。
在JavaFX CSS Reference Guide,它明确表示
在JCRG中,它们通常直接链接到W3C的CSS参考指南,当他们谈论选择器时就是这种情况。
在JCRG,他们提到Type Selectors,Class Selectors和ID Selectors-他们甚至可以说他们don't support structural pseudo-classes-但没有任何关于Attribute Selectors的说法。
如果JavaFX支持它们,它们如何工作? JavaFX认为属性是什么?我认为CSS引擎可能会查看FXML中的属性,但并非所有场景图都来自FXML。
FXML属性只是在相应的对象上设置属性。本身没有“属性选择器”,但是当且仅当设置了某些属性时,某些节点才会设置伪类(这些属性在您链接的参考指南中记录)。所以底线是没有直接等效的属性选择器,除非它们直接映射到伪类。
当然,请注意,如果需要基于属性支持CSS,则始终可以观察属性并设置/取消设置自定义伪类。因此,始终可以将属性选择器重新设置为伪类。
所以,例如假设您希望以不同的方式设置文本字段的样式(如果它具有"alignment=CENTER_RIGHT"
属性)。你可以做到
TextField textField = new TextField();
PseudoClass rightAligned = PseudoClass.getPseudoClass("right-aligned");
textField.alignmentProperty().addListener((obs, oldAlignment, newAlignment) ->
textField.pseudoClassStateChanged(rightAligned, newAlignment == Pos.CENTER_RIGHT));
然后在你需要的CSS中
.text-field:right-aligned {
/* style rules */
}
以上是关于属性选择器如何在JavaFX中工作?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用来自@mui/material 的样式使情感组件选择器在 nextjs 应用程序中工作?
Gtk.CssProvider() 基于 ID 的选择器如何在 Gtk3 中工作?