即使Chao-Wen chen solution 似乎最适合您的情况:(使用id)。您应该记住,您也可以使用自己的 css 样式类。
这是一个更详尽的示例:
public class CssApp extends Application {
@Override
public void start(Stage stage) throws Exception {
VBox vb = new VBox(10.0);
// Title
Label title = createTitle("Title");
// SubTitle 1
Label subtitle1 = createSubTitle("SubTitle1");
//Standard text
Label lorem = new Label("Lorem ipsum dolor sit amet, mea eu nibh sonet accusam, mea dicunt oblique et. Mei purto efficiantur ne, quas audiam consulatu at eum. Ea sit dicta zril, adipisci praesent pertinacia ei his.");
// SubTitle 2
Label subtitle2 = createSubTitle("SubTitle2");
//Standard text
Label ipsum = new Label("Amet dictas consequat ut vix, maluisset hendrerit vim ex, ne pro tale aliquid accusata. Mea porro aperiri voluptua te, case lorem per eu.");
Label specificText = new Label("I am a specific text with a particular styling.");
specificText.setId("specific");
vb.getChildren().addAll(title, subtitle1, lorem, subtitle2, ipsum, specificText);
Scene scene = new Scene(vb, 500.0, 400.0);
scene.getStylesheets().add(this.getClass().getResource("style.css").toExternalForm());
stage.setScene(scene);
stage.show();
}
private static Label createTitle(String pText) {
Label newLabel = new Label(pText);
newLabel.getStyleClass().add("label-title");
return newLabel;
}
private static Label createSubTitle(String pText) {
Label newLabel = new Label(pText);
newLabel.getStyleClass().add("label-subtitle");
return newLabel;
}
}
这里是 css 样式表。请注意,样式类的顺序很重要。
.label {
-fx-font-family: serif;
-fx-font-size: 12.0;
-fx-font-weight: normal;
-fx-text-fill: black;
}
.label-title {
-fx-font-family: sans-serif;
-fx-font-size: 50.0;
-fx-font-weight: bold;
-fx-text-fill: red;
}
.label-subtitle {
-fx-font-family: monospace;
-fx-font-size: 19.0;
-fx-font-style: oblique;
-fx-font-weight: normal;
-fx-text-fill: blue;
}
#specific {
-fx-text-fill: green;
}
处理这种例子(这是一个简单的例子,仅用于演示):
对于这个例子,我只使用一个样式表,但是可以为特定面板应用不同的样式表(如果提供了相同的样式类,这个样式表将覆盖所有祖先的样式表)。