【问题标题】:JavaFX style by classname类名的 JavaFX 样式
【发布时间】:2015-01-22 10:11:21
【问题描述】:

也许是一个基本的问题,但是否可以在 JavaFX 中通过类名来设置表格元素的样式。所以例如像这样:

MyClassname .table-view .column-header .label {
    -fx-text-fill:#F00;
}

我希望它在 1 个样式表中设置多个表格的样式。

提前致谢

【问题讨论】:

标签: css eclipse class javafx


【解决方案1】:

是的,支持基于类名选择器的样式 - 它基于来自Styleable 接口的Node.getTypeSelector()

要在选择器匹配中使用的 Styleable 的类型。这类似于 HTML 中的“元素”。 (CSS Type Selector)。

返回: getClass().getName() 没有包名

因此,您可以使用 CSS 规则设置所有标签的样式以填充绿色文本:

Label { -fx-text-fill: forestgreen; }

大多数节点还具有由应用程序设置的样式类,如果是标准控件,则由 JavaFX 框架设置。大多数人编码的标准方式不是使用类型选择器,而是使用样式类选择器:

.label { -fx-text-fill: forestgreen; }

类型选择器信息记录在JavaFX CSS reference guide:

Node 的 getTypeSelector 方法返回一个类似于 CSS 类型选择器的字符串。默认情况下,此方法返回类的简单名称。请注意,内部类或匿名类的简单名称可能不能用作类型选择器。在这种情况下,应该重写此方法以返回有意义的值。

【讨论】:

  • 如果我不是很具体,我很抱歉。我知道你可以给项目一个类名,但我想为类的特定元素设置样式。因此,如果我只想设置类的 BUTTONS 样式,则类似于: ClassName .button{ Styling } 但这不起作用:(
【解决方案2】:

指定从根目录到您的类的完整路径。

.root MyClassname .table-view .column-header .label {
    -fx-text-fill:#F00;
}

【讨论】:

    猜你喜欢
    • 2012-06-08
    • 2018-07-26
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 2016-11-21
    • 1970-01-01
    相关资源
    最近更新 更多