【问题标题】:background to BorderPane javafxBorderPane javafx的背景
【发布时间】:2019-03-18 16:37:15
【问题描述】:

我制作了一个 UI 舞台。 我在舞台上有一个BorderPane。 现在,我想给layout添加一个bacgGround Image

我想使用 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 如何轻松导入?

注意:文件存在路径中

【问题讨论】:

标签: java css javafx background


【解决方案1】:

问题是您的 URI 没有方案。

从到docs:

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 并将图像放置在您的项目资源中。

【讨论】:

  • 我更新了我的问题,好像我忘记了/。你能再试一次吗?
  • 错误:2019 年 3 月 18 日晚上 11:04:59 com.sun.javafx.css.StyleManager getCachedImage 警告:加载图像时出错:文件:/C:Usersitayzeclipse-workspaceItay'sCarsrcCrystalClear.jpg
  • @ItayZemah 你可以尝试使用/ 而不是\ 作为文件分隔符。正如我在回答中所展示的那样?
【解决方案2】:

这种模式对我有用:

-fx-background-image: url('file:C:/Data/example.jpg');

所以,在你的情况下,它会是:

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;");

【讨论】:

  • 2019 年 3 月 20 日上午 11:38:24 com.sun.javafx.css.parser.CSSParser term WARNING: CSS Error parsing '*{-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;}: 意外令牌'文件:C:/Users/itayz/eclipse-workspace/Itay' 在 [1,24]
  • 这可能与您的路径有关。我希望撇号是问题所在。您可能必须逃避它(\')。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-30
  • 2017-11-13
  • 1970-01-01
  • 1970-01-01
  • 2014-05-05
相关资源
最近更新 更多