当前位置: 首页 > 知识库问答 >
问题:

如何使用JavaFX将图像设置为背景?

阎伟志
2023-03-14

我试图将图像作为JavaFX场景中的背景,但我的代码不起作用。

我试图在java eclipse中制作一个战舰游戏程序,但我遇到了一个图形问题。

Game game;
Image image;

public WindowGUI(Game game) {
    this.game = game;
}

public static void main(String[] args) {
    Game game = new Game();
    new WindowGUI(game);
}

@Override
public void start(Stage stage) throws Exception {

    stage.setTitle("Battleship");
    image = new Image ("C:\\Users\\amali\\git\\inf101.v19.sem2\\inf101.v19.sem2\\src\\window\\battleshipbackground.jpg");
    ImageView background = new ImageView(image);
    Button startButton = new Button("START");
    BorderPane newStack = new BorderPane();
    newStack.getChildren().add(startButton);
    newStack.getChildren().add(background);
    stage.setScene(new Scene(newStack, 1300, 860));
    stage.show();

    startButton.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {
        //  START THE GAME
        }
    });


}

当我第一次尝试运行它时,它工作了,一个新的窗口打开了,中间有一个按钮,但bakcground是空白的。当我尝试在窗口中设置一个图像作为背景时,按下“开始”按钮,什么也没有发生…

共有1个答案

阎德业
2023-03-14

更好的方法是使用background类,而不是尝试添加ImageView作为BorderPane的子级。

Image image = new Image("C:\\Users\\amali\\git\\inf101.v19.sem2\\inf101.v19.sem2\\src\\window\\battleshipbackground.jpg");

BackgroundSize size = new BackgroundSize(BackgroundSize.AUTO, 
        BackgroundSize.AUTO, 
        false, 
        false, 
        true, 
        false);

Background background = new Background(new BackgroundImage(image,
        BackgroundRepeat.NO_REPEAT,
        BackgroundRepeat.NO_REPEAT,
        BackgroundPosition.CENTER,
        size));

newStack.setBackground(background);
 类似资料:
  • 我有一个像素。我如何使用它来获得与具有相同的效果?

  • 问题内容: 基本上,我有一个链接,当单击它时,我会显示一个模式。现在我可以在模态上显示其他属性,例如标题,除了背景图片!urg! 这是模态: 这些是链接: json: 问题答案: 使用单引号引起了一些错误,您必须将变量带到单引号之外。 对于这个div 这部分被视为字符串 而您希望angular解析此变量 所以要解决这个问题,正确的语法是

  • 我正试图为主页设置一个背景图像。我是从屏幕开始获得图像位置,填充宽度,但不是高度。我的代码中是否遗漏了什么?颤振有图像标准吗?图像缩放是否基于每个手机的屏幕分辨率?

  • 我想粘贴一个相对图像url到一个div设置为背景图像。不幸的是,div不会呈现图像。因此,这工作良好,并呈现图像 但这个不是 我也尝试过的事情: 在单引号中包装url 可能吗? 从src文件夹开始 和从“资源”文件夹开始 背景图像的正确url是什么? 更新 我在用VueJs所以这里的情况可能会有所不同?再现的步骤: 使用Vue CLI创建新项目 在中创建 目录 在中创建映像,并将其称为 使用更新a

  • 我需要为画家小部件设置一个背景图像,因为我试图建立一个小部件,将帮助孩子们画数字和字母在我的背景图像。 这将是默认的小部件背景: 加载小部件后,孩子们应该能够绘制背景。 我曾试图修改脚手架的主体从官方画家插件示例,但图像不出现在画家的背景,它只显示空白屏幕。 是否可以为Painter小部件设置背景图像?如果没有,有没有其他的解决办法可以帮助我完成我的任务?

  • 我试图使用CSS设置背景图像,但原始图像被拉伸。如何保持原始图像大小,同时设置整个页面的背景? 原始图像为:原始图像 结果是:结果图像 不同的是我的网页背景比原来的要大。 任何帮助都将不胜感激!!!