使用 CSS 進行樣式設計
CSS 可以在多個地方應用:
- 內聯(
Node.setStyle
) - 在樣式表中
- 到一個
Scene
- 作為使用者代理樣式表(此處未演示)
- 作為
Scene
的正常樣式表
- 到一個
Node
- 到一個
這允許改變 Nodes
的可定製屬性。以下示例演示了這一點:
申請類
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Region;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class StyledApplication extends Application {
@Override
public void start(Stage primaryStage) {
Region region1 = new Region();
Region region2 = new Region();
Region region3 = new Region();
Region region4 = new Region();
Region region5 = new Region();
Region region6 = new Region();
// inline style
region1.setStyle("-fx-background-color: yellow;");
// set id for styling
region2.setId("region2");
// add class for styling
region2.getStyleClass().add("round");
region3.getStyleClass().add("round");
HBox hBox = new HBox(region3, region4, region5);
VBox vBox = new VBox(region1, hBox, region2, region6);
Scene scene = new Scene(vBox, 500, 500);
// add stylesheet for root
scene.getStylesheets().add(getClass().getResource("style.css").toExternalForm());
// add stylesheet for hBox
hBox.getStylesheets().add(getClass().getResource("inlinestyle.css").toExternalForm());
scene.setFill(Color.BLACK);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
inlinestyle.css
* {
-fx-opacity: 0.5;
}
HBox {
-fx-spacing: 10;
}
Region {
-fx-background-color: white;
}
style.css 檔案
Region {
width: 50;
height: 70;
-fx-min-width: width;
-fx-max-width: width;
-fx-min-height: height;
-fx-max-height: height;
-fx-background-color: red;
}
VBox {
-fx-spacing: 30;
-fx-padding: 20;
}
#region2 {
-fx-background-color: blue;
}