java - 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 如何轻松导入?
注意:文件存在路径中
解决方案
问题是您的 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 并将图像放置在您的项目资源中。
推荐阅读
- javascript - 如何处理 catch 块和 Promise
- node.js - Docker 在 package.json 更改时自动重新运行 npm install
- php - PHP - 下载文件并在之后打印一些东西
- python - 带有 Python 消费者的 Docker Kafka
- javascript - 如何使用ajax将javascript中的变量传递给php
- azure - 使用 Azure AD Graph API 的调用请求限制
- ios - UNUserNotification 不会在 iOS 12 下触发我的本地通知
- linux - 如何删除带有特殊字符的文件?
- javascript - 提交按钮后立即加载和禁用图表
- javascript - 如何用 Vuex/Vue 处理异步数据检索