首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaFX如何设置场景背景图片

JavaFX如何设置场景背景图片
EN

Stack Overflow用户
提问于 2012-03-16 21:28:19
回答 4查看 215.5K关注 0票数 47

如何设置场景的背景图片?

EN

回答 4

Stack Overflow用户

发布于 2012-03-16 23:03:43

其中一种方法可能是这样的:

1)创建一个名为"style.css“的CSS文件,并在其中定义一个id选择器:

#窗格{-fx-背景-图像: url("background_image.jpg");-fx-背景-重复:拉伸;-fx-背景-大小: 900 506;-fx-背景-位置:居中;-fx-效果:投射阴影(三通框,黑色,30,0.5,0,0);}

2)使用CSS中定义的值设置场景中最顶层控件(或任何控件)的id,并将此CSS文件加载到场景中:

代码语言:javascript
复制
  public class Test extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        StackPane root = new StackPane();
        root.setId("pane");
        Scene scene = new Scene(root, 300, 250);
        scene.getStylesheets().addAll(this.getClass().getResource("style.css").toExternalForm());
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

您还可以在FXML文件中为控件提供id:

代码语言:javascript
复制
<StackPane id="pane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml" fx:controller="demo.Sample">
    <children>
    </children>
</StackPane>

有关JavaFX样式的更多信息,请参考此guide

票数 47
EN

Stack Overflow用户

发布于 2015-03-14 22:24:31

我知道这是个老问题

但是,如果您想以编程方式或java方式完成此操作,

对于图像背景,您可以使用BackgroundImage

代码语言:javascript
复制
BackgroundImage myBI= new BackgroundImage(new Image("my url",32,32,false,true),
        BackgroundRepeat.REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.DEFAULT,
          BackgroundSize.DEFAULT);
//then you set to your node
myContainer.setBackground(new Background(myBI));

用于绘制或填充背景;您可以使用BackgroundFill

代码语言:javascript
复制
BackgroundFill myBF = new BackgroundFill(Color.BLUEVIOLET, new CornerRadii(1),
         new Insets(0.0,0.0,0.0,0.0));// or null for the padding
//then you set to your node or container or layout
myContainer.setBackground(new Background(myBF));

让你的java活着&&你的css死了..

票数 42
EN

Stack Overflow用户

发布于 2012-03-16 23:15:02

您可以使用.root类直接更改场景的样式:

代码语言:javascript
复制
.root {
    -fx-background-image: url("https://www.google.com/images/srpr/logo3w.png");
}

将其添加到CSS中并加载为"Uluk Biy“,如他的答案所述。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9738146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档