JavaFX设置CSS

JavaFX 是一种用于构建富客户端应用程序的框架,它提供了丰富的图形界面组件和功能。通过使用CSS(层叠样式表),我们可以轻松地为 JavaFX 应用程序添加样式和外观。

CSS 在 JavaFX 中的作用

CSS 在 JavaFX 中的作用类似于 HTML 中的 CSS,它可以定义应用程序的样式、布局和外观。通过使用 CSS,我们可以实现对 JavaFX 控件的样式定制,如修改背景颜色、字体、边框等。同时,CSS 还提供了强大的选择器功能,可以通过选择器选择特定的控件,从而应用不同的样式。

在 JavaFX 中应用 CSS

在 JavaFX 中,要应用 CSS 样式,需要有一个 CSS 文件。我们可以使用 Scene 类的 getStylesheets() 方法来添加 CSS 文件到场景中。以下是使用 CSS 样式的示例代码:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class MyApplication extends Application {
    @Override
    public void start(Stage primaryStage) {
        // 创建一个按钮
        Button button = new Button("Click me!");

        // 创建一个 StackPane 作为根节点,并将按钮添加到其中
        StackPane root = new StackPane();
        root.getChildren().add(button);

        // 创建一个场景,并将根节点添加到场景中
        Scene scene = new Scene(root, 300, 200);

        // 添加 CSS 样式文件到场景中
        scene.getStylesheets().add("styles.css");

        // 将场景设置到主舞台上
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

在上面的示例代码中,我们创建了一个简单的 JavaFX 应用程序,其中包含一个按钮。我们首先创建了一个 Button 对象,然后创建了一个 StackPane 对象作为根节点,并将按钮添加到其中。接着,我们创建了一个 Scene 对象,并将根节点添加到场景中。最后,我们使用 getStylesheets() 方法添加了一个名为 styles.css 的 CSS 文件到场景中。

CSS 文件的编写

CSS 文件的编写和使用与 HTML 中的 CSS 类似。我们可以使用选择器来选择不同的 JavaFX 控件,并为其设置不同的样式。以下是一个简单的 CSS 文件示例:

.button {
    -fx-background-color: #00ff00;
    -fx-text-fill: #ffffff;
    -fx-font-size: 18px;
    -fx-padding: 10px;
}

.button:hover {
    -fx-background-color: #ff0000;
}

.button:pressed {
    -fx-background-color: #0000ff;
}

在上面的示例中,我们为按钮添加了三个不同的样式:.button 是按钮的基本样式,.button:hover 是鼠标悬停在按钮上时的样式,.button:pressed 是按钮被按下时的样式。我们可以根据需要自定义更多的样式。

运行 JavaFX 应用程序

要运行 JavaFX 应用程序,需要在系统中安装 JavaFX 运行时。如果您使用的是 Java 11 或更高版本,JavaFX 已经成为 JDK 的一部分,无需额外安装。如果您使用的是 Java 8 或 Java 10,您需要从 OpenJFX 官方网站下载并安装 JavaFX 运行时。

结论

通过使用 CSS,我们可以轻松地为 JavaFX 应用程序添加样式和外观,实现对控件的自定义。本文介绍了如何在 JavaFX 中应用 CSS 样式,以及如何编写 CSS 文件。希望本文对您理解 JavaFX 中的 CSS 设置有所帮助。

参考链接:

  • [JavaFX Documentation](
  • [JavaFX CSS Reference Guide](