在JavaFX项目中使用css

时间:2015-08-09 16:10:03

标签: java css javafx

我有一个.css文件,其中包含一些标签样式。这是这个文件的一部分:

#defaultBeforeAndNowLabel {
    -fx-background-color: "C4BA62";
    -fx-text-fill: blue;
    -fx-alignment: center;
    -fx-font-size: 1.3em;
    -fx-font-weight: bold;
}

#changedLabelBefore {
    -fx-font-size: 1.5em;
    -fx-background-color: red;
    -fx-text-fill: black;
    -fx-alignment: center;
    -fx-font-weight: bold;
}

#changedLabelNow {
    -fx-font-size: 1.5em;
    -fx-background-color: lawngreen;
    -fx-text-fill: white;
    -fx-alignment: center;
    -fx-font-weight: bold;
}

在代码中我使用这样的东西:

label.setId("changedLabelBefore");

它有效,但.css文件中有太多重复,我想我可以使用类似继承的东西来避免它。如何更改我的.css文件以及如何在java代码中使用它?

1 个答案:

答案 0 :(得分:0)

一种可能的解决方案是使用类而不是ID。

.css文件看起来像

.defaultLabel {
  -fx-alignment: center;
  -fx-font-weight: bold;
  …
}

.defaultLabelBefore {
  -fx-text-fill: black;
  -fx-background-color: red;
} 

相应的java代码看起来像

Label.getStyleClass.addAll(“defaultLabel”, “defaultLabelBefore”);