JavaFx:如何在增加/减小窗口大小时使窗口的背景图像大小发生变化?

时间:2018-04-08 02:25:38

标签: java image user-interface javafx background-image

在增加或减少窗框时,如何将背景图像设置为窗口大小?现在图像的设置大小为300,300,因此当增加窗口时,大小保持不变。 这是我的代码片段:

    grid.getChildren().addAll(nameLabel, nameInput, passLabel, passInput, 
    loginButton);

    grid.setMinSize(300,300);
    grid.setMaxSize(300,300);
    StackPane root = new StackPane(grid);
    NumberBinding maxScale = Bindings.min(root.widthProperty().divide(300), 
    root.heightProperty().divide(300));
    grid.scaleXProperty().bind(maxScale);
    grid.scaleYProperty().bind(maxScale);

    BackgroundImage myBI= new BackgroundImage(new Image("image.jpg", 300, 300, 
    false, true),
    BackgroundRepeat.REPEAT, BackgroundRepeat.NO_REPEAT, 
    BackgroundPosition.DEFAULT, BackgroundSize.DEFAULT);
    //then you set to your node
    grid.setBackground(new Background(myBI));

    Scene scene = new Scene(root, 300,300);
    window.setScene(scene);
    window.show();

1 个答案:

答案 0 :(得分:0)

您可以尝试根据documentation实例化BackgroundSize对象,并将覆盖值设置为true。然后使用您创建的BackGroundSize对象而不是BackGroundSize.DEFAULT