首页 > 解决方案 > BorderPane javafx的背景

问题描述

我做了一个UI阶段。我有一个BorderPane在舞台上。现在,我想添加一个 bacgGround 图像到layout

我想使用 CSS 但它不起作用

    public void start(Stage primaryStage) throws Exception {
    carStage = new Stage();
    BorderPane layout = new BorderPane();
    carScene = new Scene(layout);
    carStage.setTitle("רכב");
    GridPane center = new GridPane();
    enterFieldsToCenter(center);
    right(layout);
    layout.setCenter(center);
    layout.setStyle("style.css");
    carStage.setScene(carScene);
    layout.getCenter().setStyle("-fx-background-image: url(\"C:\\Users\\itayz\\eclipse-workspace\\Itay'sCar\\src\\CrystalClear.jpg\");"
            + "-fx-background-size: 500, 500;"
            + "-fx-background-repeat: no-repeat;");

    sizeOfStage();
    carStage.show();

}

背景来自:https ://uigradients.com/#CrystalClear 如何轻松导入?

注意:文件存在路径中

标签: javacssjavafxbackground

解决方案


问题是您的 URI 没有方案。

文档

url ( [\"\']? <address> [\"\']? )

<address>可以是绝对 URI,例如:

  • url(http://example.com)

  • url('http://example.com')

  • url("http://example.com")

或者它可以相对于 CSS 文件的位置。

因此,您必须使用带有方案的绝对 URL:

layout.getCenter().setStyle("-fx-background-image: url(\"file:///C:/Users/itayz/eclipse-workspace/Itay'sCar/src/CrystalClear.jpg\");"
        + "-fx-background-size: 500, 500;"
        + "-fx-background-repeat: no-repeat;");

除此之外,我建议使用相对 URL 并将图像放置在您的项目资源中。


推荐阅读