如何将 CSS 用于 JavaFX 项目
How To Use CSS For JavaFX Projects
我对 JavaFX 很陌生,想知道是否有办法将 css 文件分配给整个 JavaFX project/scene。目前,我必须将样式表应用到我想要使用 css 设置样式的每个元素。我正在使用 IntelliJ 和 Scene Builder 2.0。我已经尝试在我的 Main class 中添加样式表,启动方法如下所示,但它似乎没有达到预期的效果。
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("JavaFXTest.fxml"));
primaryStage.setTitle("JavaFX Test");
primaryStage.setScene(new Scene(root, 300, 275));
root.getStylesheets().add("@../styling/styles.css");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
我意识到 css 文件的路径有问题。我将其更改为:
root.getStylesheets().add("styling/styles.css");
并取得了预期的效果。这样我就不需要手动将样式表添加到 UI 中的每个元素,而是它现在适用于整个场景。只需按照正常的 css 约定声明您的 classes/id 即可添加样式。
可以给场景添加样式sheet:
public void start(Stage primaryStage) {
Button btn = new Button();
btn.setText("Say 'Hello World'");
btn.setOnAction(event -> System.out.println("Hello World!"));
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
scene.getStylesheets().add("/styling/styles.css");
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
在上面的示例中,样式 sheet 位于相对于源根目录的 /styling/styles.css
。
我对 JavaFX 很陌生,想知道是否有办法将 css 文件分配给整个 JavaFX project/scene。目前,我必须将样式表应用到我想要使用 css 设置样式的每个元素。我正在使用 IntelliJ 和 Scene Builder 2.0。我已经尝试在我的 Main class 中添加样式表,启动方法如下所示,但它似乎没有达到预期的效果。
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("JavaFXTest.fxml"));
primaryStage.setTitle("JavaFX Test");
primaryStage.setScene(new Scene(root, 300, 275));
root.getStylesheets().add("@../styling/styles.css");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
我意识到 css 文件的路径有问题。我将其更改为:
root.getStylesheets().add("styling/styles.css");
并取得了预期的效果。这样我就不需要手动将样式表添加到 UI 中的每个元素,而是它现在适用于整个场景。只需按照正常的 css 约定声明您的 classes/id 即可添加样式。
可以给场景添加样式sheet:
public void start(Stage primaryStage) {
Button btn = new Button();
btn.setText("Say 'Hello World'");
btn.setOnAction(event -> System.out.println("Hello World!"));
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
scene.getStylesheets().add("/styling/styles.css");
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
在上面的示例中,样式 sheet 位于相对于源根目录的 /styling/styles.css
。