让一个节点忽略CSS类条目

时间:2016-01-26 06:41:50

标签: java css javafx fonts label

所以我有以下代码snipet,我想在我的JavaFX应用程序中应用于99%的标签。但是,有时我不希望它被应用。不幸的是,每当我试着打电话

myFont.setFont(Font.loadFont(etc etc);

无法覆盖CSS文件中的标签类。如何才能做到这一点?谢谢!

.label
{
    -fx-font-size: 14pt;
    -fx-font-family: "Segoe UI Semibold";
}

2 个答案:

答案 0 :(得分:2)

有不同的方法可以做到这一点。这里描述的方法很少:

  • 定义不同的样式类,而不是使用默认的.label,并在99%的标签上使用它。

代码:

mylabel.getStyleClass().add("my-label")

CSS:

.my-label {
   -fx-font-size: 14pt;
   -fx-font-family: "Segoe UI Semibold";
}
  • 删除默认的label样式类,并将新样式类设置为1%的标签。这将从节点中删除已存在的.label样式类。这似乎是一种更简单的方法,但如果我是你,我不会采用这种方法,因为我们< 3默认样式,我们希望它们默认应用于各个节点。 / LI>

代码:

mylabel.getStyleClass().setAll("my-label");

答案 1 :(得分:1)

.label是应用于Node类型的所有Label的内置样式之一。您可以删除任何样式类:

Label lbl = ...
lbl.getStyleClass().remove("label");

但是我会建议另一种方法,不涉及删除样式类,尤其是内置的一个。

由于似乎只有一些选定的标签,没有那种风格,您可以在这些标签上覆盖它:

.label-override {
    -fx-font-size: 10pt;
    -fx-font-family: "Segoe UI Semibold";
}

Label otherLbl = ...
otherLabel.getStyleClass().add("label-override);