我已经使用在我的JavaFX项目中链接的CSS在FXML中的BorderPane
上成功设置了背景图像。但是,使用cover
会将背景图片的左上角粘贴到BorderPane
的左上角。封面本身可以很好地缩放图像,但图像不会像它应该的那样居中。
我发现有多个问题和答案说你需要使用-fx-background-position: center center;
,但它根本没有帮助我。我在我的CSS的每个位置都实现了它,并且直接在FXML中实现它,但没有任何成功。我尝试使用cover
以外的选项,例如auto
,并且它们确实将背景居中,但是它们裁剪图像而不是像cover
那样缩放图像。
我的代码的相关部分如下。
CSS:
#login{
-fx-background-image: url("login-background.jpeg");
-fx-background-position: center center;
-fx-background-repeat: no-repeat;
-fx-background-size: cover;
}
FXML:
<?xml version="1.0" encoding="UTF-8"?>
<BorderPane fx:id="localRoot" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="...">
<center>
<HBox alignment="CENTER" BorderPane.alignment="CENTER">
<children>
.
.
.
</children>
</HBox>
</center>
</BorderPane>
爪哇:
@FXML
private BorderPane localRoot;
public void initialize() {
localRoot.setId("login");
}